0

1) を呼び出した後、外側のシングルトンRunnableの static を変更すると、内側の static クラスがブロックされる可能性はありますか? 複数のランナブルによってマップ内の同じアイテムが同時に変更されるシナリオを考えています。複数のランナブルは、外側のシングルトンの静的で実行されます。ConcurrentHashMapCallableThreadPoolExecutor

Thread2) 呼び出し可能なものは、実行可能なものと同じように呼び出されval = myCallable.call()ますか? callable の結果に応じて、concurrenthashmap を変更します。

4

2 に答える 2

1
  1. 静的初期化子を実行している場合を除き、Java が暗黙的にブロックすることはありません。

  2. call()通常のメソッド呼び出しであり、他のメソッド呼び出しと同様に、呼び出しスレッドで同期的に実行されます。

于 2013-08-20T15:18:01.810 に答える
1
  1. ConcurrentHashMapノンブロッキングになるように設計されていますが、同じハッシュ セグメントに対する複数の更新が同時に発生した場合、競合が発生する可能性があります。
  2. はい。
于 2013-08-20T15:18:04.813 に答える