0

我有两个线程。一个是客户,另一个是生产者。

我想在客户中调用一个名为 READ 的函数。这应该无限期地阻塞,直到生产者把数据放在上面。

我该怎么做 ?谢谢 !

4

3 回答 3

5

我建议您使用LinkedBlockingQueue. 这是模拟“生产者-消费者”问题的最简单方法。一个线程使用put方法将值放入队列,另一个使用take阻塞的数据(线程等待直到队列不为空)。使用LinkedBlockingQueue非常简单,因为您不必同步您的方法。一切都已经完成了。

于 2012-06-25T23:44:22.230 回答
2

如果要放入队列的数据需要同步,即生产者生成一个对象并将其存储在队列中;消费者必须消费生产者放置的对象,使用 SynchronousQueue 或 new TransferQueue 应该是一个更好的主意

于 2012-06-26T08:36:19.750 回答
-3

使用thread.wait()然后thread.notify()thread.wait()等到thread.notify()事情发生。

于 2012-06-25T23:46:40.130 回答