gpt4 book ai didi

java - 在 Java 线程中发送和接收事件

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:41 25 4
gpt4 key购买 nike

我习惯了 C++/Qt 的信号概念(发出/监听),现在我正在用 Java 做一个项目,需要某种数据发送/接收机制。

我的需求是:

  • 发出一个事件(带有一些数据)并让所有线程监听/捕获它。
  • 显然,考虑到之前的要求,能够监听/捕获带有附加数据的信号。

这在 Java 中可行吗?如何实现? (我会欣赏一个小的可编译示例/链接)

最佳答案

Java 默认情况下没有简单的事件处理机制,例如 .Net 的事件或 Qt 的信号和槽。它确实在各种 java GUI 框架中具有监听器的概念,但我认为这不是您正在寻找的。

您应该考虑像 Google Guava's EventBus framework 这样的发布-订阅库。

如果您不想使用第三方库,那么我建议您开始考虑使用 BlockingQueue 的子类之一。请参阅FileCrawler example摘自Java Concurrency in Practice第62页了解如何使用 BlockingQueue 将事件/数据发送到工作线程。

如果您正在寻找更复杂的跨进程边界或本地计算机边界的消息/事件通知解决方案,那么您可能需要研究:

关于java - 在 Java 线程中发送和接收事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24841090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com