3 つの Java のインスタンスがあり、 1 つのスレッドのみを使用しLinkedBlockingQueue
てそれらから読み取り (操作) を実行したいと考えています。take
素朴なアプローチは、キューごとに 1 つのスレッドを持つことです。
select
Java でキューをブロックするための UNIX システム コールのようなものはありますか?
ありがとう。
3 つの Java のインスタンスがあり、 1 つのスレッドのみを使用しLinkedBlockingQueue
てそれらから読み取り (操作) を実行したいと考えています。take
素朴なアプローチは、キューごとに 1 つのスレッドを持つことです。
select
Java でキューをブロックするための UNIX システム コールのようなものはありますか?
ありがとう。
これらの BlockingQueues は、実際には独自のスレッドによって処理されることを意図していました。
Boolean
s など、はるかに小さなアイテム用に 4 番目のキューを設定し、offer()
その 4 番目のキューにブール値を挿入することで、他の 3 つのキューのそれぞれの呼び出しを挿入することを検討します。その後、スレッドは 4 番目のキューでスリープ状態になり、ウェイクアップするpeek()
と、他の 3 つのキューで商品を取得する場所を見つけることができます。
非常に洗練されていない解決策だと思います。また、時々きれいに目覚めない競合状態が発生する可能性があると思います。しかし、それは基本的にうまくいくはずです。