线程池中线程之间的通信

时间:2012-06-21 13:55:38

标签: java multithreading hashmap threadpool

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

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

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

2 个答案:

答案 0 :(得分:2)

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

myHash.remove(keyToBeRemoved);

然后哈希映射(所有引用引用)将不再具有该映射。

答案 1 :(得分:1)

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

keyToBeRemoved =>与上述相同