0

オンラインゲームの作成に 2 つのスレッドがあります。1 つのスレッドが 2 つの X 番号と Y 番号を受け取り、もう 1 つのスレッドが X 番号と Y 番号をサーバーにログインしている全員に送信します。基本的に、最初のスレッドが 2D 配列を Queue に追加し、これを続けられるようにするキューが必要です。同時に、配列を引き抜いてキューから配列を削除し、キューに送信するために使用します。他のプレイヤー。これを行う方法はありますか?同期キューが必要であることはわかっていますが、同期キューを同期するにはどうすればよいですか? それはブロッキング キューと呼ばれますか?

全体として、同期されたキューが必要です。これにより、2 つのスレッドが内容をスローしたり、内容を取り出したりすることができます。出来ますか?

-ダン

4

1 に答える 1

-1

ブロッキング キューは、次のようなキューです。

  1. 要素を追加すると、要素が(他のスレッドによって)削除されるまで、キューに使用可能なスペースがない場合に呼び出し元スレッドがブロックされます。
  2. そこから要素を削除すると、削除する要素がない場合に、(他のスレッドによって) 要素が追加されるまで、呼び出し元のスレッドがブロックされます。

スレッドセーフな(必ずしも同期されているわけではありませんが) キューの機能を実現するには、通常BlockingQueue、 などの の実装のいずれかを使用しLinkedBlockingQueueます。

于 2013-01-31T23:40:18.617 に答える