2011-07-25 8 views
1

C++のstlキューに同時に追加すると問題が発生する可能性があります。これを解決する方法は、すべての追加/削除呼び出しにmutexロックを追加することです。JavaのBlockingQueueに同時コールを呼び出す

私は現時点ではJavaでプログラミングしていますが、私はBlockingQueueを使用しています。このドキュメントでは、BlockingQueueオブジェクトのput/takeを呼び出すスレッドは、取り込む余地があるまで暗黙的にブロックされているとしか言いません。しかし、同時のput/take呼び出しについては何も言及していません。ミューテックスロックでこれらを保護する必要はありますか?

答えて

1

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

BlockingQueueの実装はスレッドセーフです。すべてのキューイングの方法は、それらの効果がアトミックdocumentationから内部ロックまたは同時実行制御

+0

私はその言葉について少し不明だったので、確認してくれてありがとう! –

1

の他の形態を使用して達成:

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

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

関連する問題