0

假设我有一个线程池并且每个线程都运行以下方法:

void runMe(HashMap myHash){
   ...
   myHash.remove(keyToBeRemoved);
   ...
}

我的问题是;myHash开始时所有线程不应该相同吗?因为我的第二个线程没有密钥keyToBeRemoved。我想知道为什么。

4

2 回答 2

2

所有线程的myHash 引用可能相同,但是当第一个线程执行时

myHash.remove(keyToBeRemoved);

那么哈希映射(所有引用都引用)将不再具有该映射。

于 2012-06-21T13:59:17.147 回答
1

HashMap hm => 取决于您的程序。如果您使用它在线程之间共享,它将被每个线程同时修改并且您提供并发性。

keyToBeRemoved => 同上

于 2012-06-21T14:01:01.450 回答