请参考以下java源代码:
static class SynchronizedList<E>
extends SynchronizedCollection<E>
implements List<E> {
final List<E> list;
public boolean equals(Object o) {
synchronized (mutex) {return list.equals(o);}
}
public int hashCode() {
synchronized (mutex) {return list.hashCode();}
}
public ListIterator<E> listIterator() {
return list.listIterator(); //Must be manually synched by user
}
我的问题是为什么 listIterator() 不像 hashcode() 和 equals() 方法那样受到互斥锁的保护?为什么他们设计它需要用户进行外部同步?