我有五个消费者和一个生产者。五个消费者各自从一个生产者输出不同的数据,持续约 10 毫秒。在这 10 毫秒内,生产者为下一个输出准备参数。设置输出参数后,我想设置一个标志,指示消费者开始下一个输出。我只希望生产者在消费者输出数据时生产。
我不确定如何同步五个消费者和单个生产者。我目前有两个标志,runFlag 和 doneFlag。当消费者读取新数据时,我想将 runFlag 设置为 true 以便计算开始,并且我想将 doneFlag 设置为 false,因为计算尚未完成。但是,如果我在一个消费者中将 doneFlag 设置为 false,则在另一个消费者可以检查标志之前,它可能在另一个消费者中为 false。
我希望我的问题足够具体。如果还有什么我可以提供的,请告诉我。另外,我只是在寻找有关如何进行的总体思路。我知道有多种方法可以做到这一点,但我不确定哪种方法效果最好。
谢谢!