0

スレッドプールが 1 つあり、各スレッドが次の方法で実行されているとします。

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

私の質問は; myHash最初はすべてのスレッドで同じであってはなりませんか? 私の 2 番目のスレッドには key がないためkeyToBeRemovedです。なぜだろうと思っていました。

4

2 に答える 2

2

myHash 参照はすべてのスレッドで同じかもしれませんが、最初のスレッドが実行されるとき

myHash.remove(keyToBeRemoved);

その場合、ハッシュ マップ(すべての参照が参照する) にはそのマッピングがなくなります。

于 2012-06-21T13:59:17.147 に答える
1

HashMaphm=>プログラムによって異なります。スレッド間で共有して使用している場合は、各スレッドによって同時に変更され、同時実行性が提供されます。

keyToBeRemoved=>上記と同じ

于 2012-06-21T14:01:01.450 に答える