gpt4 book ai didi

Java多线程通信

转载 作者:行者123 更新时间:2023-12-01 08:14:01 24 4
gpt4 key购买 nike

我对 Java 多线程和并发工具的使用相对较新。我正在实现一个具有事件生成器的应用程序(我们称之为EventProducer)。 EventProducer 有一个线程池 FixedThreadPool,其中每个要处理的事件发送一个新线程,向池中提交一个新的 EventProcessor 线程。

一切顺利,每个事件到达时都会在池中创建一个线程。但问题是我想将 EventProcessor 线程(特定于每个事件请求)与两个应该属于应用程序范围的线程进行通信,我的意思是,我只有它们的一个实例在应用程序中,假设 Service1Service2。它们都有线程池,能够并发处理任务。

特定的 EventProcessorService1 发送任务集,并返回每个任务的响应。对于这些回复,我寻找了 CompletionService但我不知道如何将它与 Blocking queues 集成用于双向通信。之后,根据该响应,EventProcessor 发送一个或另一个操作以在 Service2 中执行。 Service2 还将向 EventProcessor 发送有关该操作的响应。

有人知道我该如何解决这个问题吗?我需要一个介绍才能实现第一步。汇集您的想法。

最佳答案

线程间通信的最佳对象是BlockingQueue。它们非常灵活且线程安全,通常可以满足所有要求。

BlockingQueue<Task> queue = new LinkedBlockingQueue<>();

关于Java多线程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941007/

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