キューが複数のスレッドによってアクセスされる予定であるが、現在は単一のメソッドによってのみ変更されている場合getNextInQueue()
、キューへのアクセスを同期する最も適切な形式は何ですか?
現在、キューを として宣言しましたConcurrentLinkedQueue
が、ロックが解放されるのを複数のスレッドが待機しているデッドロックに到達したくありません。これを処理する別の方法は、キューを同期するのではなく、同期することgetNextInQueue()
です。ただし、このコードは将来使用されるため、これも同様に拡張されるとは思いません。(キューに変更を加えるすべてのプログラマーは、操作を確実に同期させる必要があります。)
考え?