0

我有两个线程用于制作在线游戏。一个线程接收两个 X 和 Y 数字,另一个线程将 X 和 Y 数字发送给登录到服务器的每个人。基本上我需要一个队列,这将允许第一个线程将 2D 数组添加到队列中,并继续这样做,同时拉出数组并从队列中删除数组以用于发送到其他玩家。有没有办法做到这一点?我知道我需要一个同步队列,但是我如何同步一个,这叫阻塞队列吗?

总的来说,我需要一个同步的队列,这将允许两个线程投入和取出东西。可能吗?

-担

4

1 回答 1

-1

阻塞队列是一个队列,其中:

  1. 向其中添加元素,在队列上没有可用空间的情况下阻塞调用者线程,直到元素被删除(由其他线程);
  2. 从中删除元素,在没有任何元素要删除的情况下阻塞调用者线程,直到它添加的元素(由其他线程)。

为了实现线程安全(尽管不一定同步)队列的功能,您通常会使用BlockingQueue的实现之一,例如LinkedBlockingQueue.

于 2013-01-31T23:40:18.617 回答