我在Java 7上工作.
我想知道方法包含的HashSet对象是否是线程安全的.
HashSet由一个线程初始化.然后我们用不可修改的集合(Collections.unmodifiableSet)包装HashSet.初始化后,多个线程只调用方法contains.
当我读到Javadoc时,对我来说还不清楚.
This class implements the Set interface, backed by a hash table (actually a HashMap instance).
…
Note that this implementation is not synchronized.
Note that this implementation is not synchronized. If multiple threads access a hash map concurrently, and at least one of the threads modifies the map structurally, it must be synchronized externally. (A structural modification is any operation that adds or deletes one or more mappings; merely changing the value associated with a key that an instance already contains is not a structural modification.)
对我来说,这意味着方法包含的不是结构修改.
所以多次调用方法包含它是否是线程安全的?
如果是真的:JVM的所有实现(如IBM JVM)都能保证吗?