Making a Thread-Safe or Synchronized Collection
As you know by now, the commonly used collection classes, such as java.util.ArrayList, are not synchronized. However, if there's a chance that two threads could be altering a collection concurrently, you can generate a synchronized collection from it using the synchronizedCollection() method. Similar to the read-only methods, the thread-safe APIs let you generate a synchronized collection, list, set, or map. For instance, this is how you can generate a synchronized map from a HashMap:
Map map = Collections.synchronizedMap(new HashMap());
map.put(“key”, “result”);
Note that the reference is not stored to the un-synchronized map. It's very important to only access a synchronized collection or a map from the object (reference) returned by the corresponding synchronizeXXX() method. Otherwise, the behavior would be undefined.
发表于 @
2006年07月12日 16:39:00 | | 编辑|
举报| 收藏