質問

CONCURRENTがC ++のSTLキューに追加すると問題を引き起こす可能性があり、これを解決する方法は、すべての追加/削除呼び出しの周りにMutexロックを追加することです。

しかし、私は現在Javaでプログラミングしており、BlockingQueueを使用しています。ドキュメントには、blockingqueueオブジェクトを呼び出すスレッドが、置く余地がある/それぞれ何かを取ることができるまで暗黙的にブロックされることのみが書かれています。ただし、同時プット/テイクコールについては何も言及していません。 Mutex Lockでこれらを保護する必要がありますか?

役に立ちましたか?

解決

いいえ、ブロッキングキューはスレッドセーフです。から ドキュメント:

BlockingQueueの実装はスレッドセーフです。すべてのキューイング方法は、内部ロックまたは他の形式の並行性制御を使用して原子的に効果を達成します

他のヒント

から ドキュメンテーション:

BlockingQueueの実装はスレッドセーフです。

したがって、ロックは必要ありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top