是否可以使用事件和事件侦听器在Java中的两个线程之间传递一组信息?如果我将我的问题简化为基础,我有一个生产者和消费者,每个人都在自己的线程上“活着”。生产者创建消息,一旦创建消息,它“idealy”将向消费者发送事件。消费者将做很多事情,但也会听一个制片人事件。这意味着不能阻止消费者或等待生产者。
如果可以,我在哪里可以找到一个可以使用的通用示例?
有关该型号的更多信息,请参阅
答案 0 :(得分:0)
是的,您可以将一些消息从一个线程传递到另一个线程在特定事件上,您应该有第三个静态类,应该让这些线程运行,
答案 1 :(得分:0)
是否可以使用事件和事件侦听器在Java中的两个线程之间传递一组信息?
是
如果我将问题简化为基础,我有一个生产者和消费者,每个人都在自己的线程上“活着”。生产者创建消息,一旦创建消息,它“idealy”将向消费者发送事件。
事件和事件监听器比解决此问题所需的内容更复杂。
您需要的是一个消息队列。
Java提供了AbstractQueue的ConcurrentLinkedQueue实现。生产者线程将消息添加到队列中,而消费者线程从队列中获取消息(轮询)。
如果您的消费者线程在队列中找不到任何内容,它将进入休眠状态X毫秒,然后再次检查队列。
如果您决定仍想使用事件和事件监听器,请阅读这篇内容丰富的文章Event Listener。您必须使存储事件侦听器线程的List
安全。
答案 2 :(得分:0)
“消费者会做很多事情,但也会倾听 对于制片人事件“。
通过消费者线程统一所有作业执行 - 将所有“事物”放在消费者的输入队列中,这样消费者只有在真正无所事事时才会阻止。