5

簡単に説明してください

BlockingQueuesはスレッドセーフであることを知っています。

つまり、ブロッキングキューへの単一の参照を、単一のコンシューマーによって消費されるようにウィリーニリーにイベントをドロップできるすべてのプロデューサーに渡すことができ、何も中断されないということですか?

BlockingQueuesそうでなければ、定期的な更新がある場合とない場合がある最大20を生成し、それらを効率的に読み取る必要があることは、克服できない作業のように思われます。

4

2 に答える 2

5

これは、ブロッキング キューへの 1 つの参照をすべてのプロデューサーに渡すことができるということですか?

一言で言えば、そうです。これは安全です。ドキュメントを引用するには:

BlockingQueue実装はスレッドセーフです。すべてのキューイング メソッドは、内部ロックまたはその他の形式の同時実行制御を使用して、アトミックに効果を達成します。

于 2012-12-11T19:50:06.640 に答える
1

スレッドセーフである場合、すべてのスレッドがアクセスできるそのキューのインスタンスが 1 つだけ必要であることを意味します。並行データ構造は、これらのアクセスを管理します。これは、ユーザー側からの同期が不要であることも意味します。

于 2012-12-11T19:50:59.647 に答える