multithreading - Java多线程两个生产者和1个消费者问题

标签 multithreading

我需要解决多个生产者和一个消费者的问题。 限制是我有两个生产者和一个消费者。仅当消费者收到两个生产者的通知时才应开始处理。在那之前消费者不应该做任何事情。但每个制作人都是独立工作的,他们可以继续制作。您能帮我做这件事吗? HSK

最佳答案

创建两个 blocking queues - 每位制作人一份。消费者了解两个队列,并尝试从每个队列中获取一个元素。 (它只需从一个元素然后另一个元素中获取即可做到这一点。)当它从每个元素中获取一个元素时,它会对其进行处理,然后重复。

您需要考虑如果一个生产者比另一个生产者快得多,您希望发生什么 - 您可能希望队列受到限制,并计算出如果一个生产者“填满”其队列该怎么办。

关于multithreading - Java多线程两个生产者和1个消费者问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490000/

相关文章:

python - 从Python中的一个线程读取值: queue or global variable?

asp.net - 是否每个 'HttpRequest'在ASP.NET中都有自己的线程?

python - 多线程时如何关闭线程?

c# - 将图像转换为灰度并行循环

multithreading - 通过 golang 进行 gitlab 抓取的问题

java - 在 Java 中实现 "Selenium driver pool"的正确方法是什么?

c# - 如何在新线程中调用长方法以保持 UI 在 C# 中运行

java - 多线程场景下的 volatile+synchronized 组合

c++ - 没有锁的独立物理线程

对相同数据执行 Java 线程