假设我有一个线程池,每个线程都按以下方法运行:
void runMe(HashMap myHash){
...
myHash.remove(keyToBeRemoved);
...
}
我的问题是;一开始所有线程中myHash
不应该相同吗?因为我的第二个帖子没有键keyToBeRemoved
。我想知道为什么。
答案 0 :(得分:2)
所有线程的myHash
引用可能相同,但第一个线程执行时
myHash.remove(keyToBeRemoved);
然后哈希映射(所有引用引用)将不再具有该映射。
答案 1 :(得分:1)
HashMap hm =>取决于你的计划。如果您在线程之间共享它,它将被每个线程同时修改,并且您提供了并发性。
keyToBeRemoved =>与上述相同