我需要解决多个生产者和一个消费者的问题。 限制是我有两个生产者和一个消费者。仅当消费者收到两个生产者的通知时才应开始处理。在那之前消费者不应该做任何事情。但每个制作人都是独立工作的,他们可以继续制作。您能帮我做这件事吗? HSK
最佳答案
创建两个 blocking queues - 每位制作人一份。消费者了解两个队列,并尝试从每个队列中获取一个元素。 (它只需从一个元素然后另一个元素中获取即可做到这一点。)当它从每个元素中获取一个元素时,它会对其进行处理,然后重复。
您需要考虑如果一个生产者比另一个生产者快得多,您希望发生什么 - 您可能希望队列受到限制,并计算出如果一个生产者“填满”其队列该怎么办。
关于multithreading - Java多线程两个生产者和1个消费者问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490000/