Why do I need to synchronize a list returned by Collections.synchronizedList
问题 i found this at dos.oracle.com public static List synchronizedList(List list) Returns a synchronized (thread-safe) list backed by the specified list. In order to guarantee serial access, it is critical that all access to the backing list is accomplished through the returned list. It is imperative that the user manually synchronize on the returned list when iterating over it: List list = Collections.synchronizedList(new ArrayList()); ... synchronized(list) { Iterator i = list.iterator(); //