Java 使用事件在线程之间传递信息

Java 使用事件在线程之间传递信息,java,multithreading,events,Java,Multithreading,Events,在Java中,是否可以使用事件和事件侦听器在两个线程之间传递一组信息?如果我把我的问题简化到它的基础上,我有一个生产者和消费者,每个人都“生活”在自己的线程中。生产者创建消息,一旦消息被创建,它“理想地”将向消费者发送事件。消费者会做很多事情,但也会倾听制作人的活动。这意味着消费者不能被阻止或等待生产者 如果这是可能的,我在哪里可以找到一个通用的例子来工作 有关该型号的更多信息,请参阅 是的,您可以在特定事件上从一个线程向另一个线程传递消息,您应该有第三个静态类,该类应该运行这些线程, 一个线程

在Java中,是否可以使用事件和事件侦听器在两个线程之间传递一组信息?如果我把我的问题简化到它的基础上,我有一个生产者和消费者,每个人都“生活”在自己的线程中。生产者创建消息,一旦消息被创建,它“理想地”将向消费者发送事件。消费者会做很多事情,但也会倾听制作人的活动。这意味着消费者不能被阻止或等待生产者

如果这是可能的,我在哪里可以找到一个通用的例子来工作

有关该型号的更多信息,请参阅


是的,您可以在特定事件上从一个线程向另一个线程传递消息,
您应该有第三个静态类,该类应该运行这些线程,

  • 一个线程在静态类中的列表中发送信息 而
    其他
  • 线程正在读取该静态类的列表,如果 存在由第一个线程发送的某些数据,此线程将 根据这一点进行一些操作
  • 在Java中,是否可以使用事件和事件侦听器在两个线程之间传递一组信息

    如果我把我的问题简化到它的基础上,我有一个生产者和消费者,每个人都“生活”在自己的线程中。生产者创建消息,一旦消息被创建,它“理想地”将向消费者发送事件

    事件和事件侦听器比解决此问题所需的更复杂

    您需要的是一个消息队列

    Java提供了抽象队列的实现。生产者线程向队列中添加消息,消费者线程从队列中获取消息(轮询)

    如果您的使用者线程在队列中找不到任何内容,它将休眠X毫秒,然后再次检查队列

    如果您决定仍然要使用事件和事件侦听器,请阅读本文。您必须使存储事件侦听器的
    列表
    s线程安全

    “消费者会做很多事情,但也会倾听 为制片人的活动”

    只需通过使用者线程统一所有作业执行—将所有“东西”放入使用者的输入队列中,这样使用者只有在确实无事可做时才会阻塞