У меня пять потребителей и один производитель. Каждый из пяти потребителей выводит разные данные от одного производителя в течение ~ 10 мс. В течение этих 10 мс производитель подготавливает параметры для следующего вывода. Когда параметры вывода установлены, я хочу установить флаг, указывающий потребителям начать следующий вывод. Я хочу, чтобы производитель производил только тогда, когда потребители выводят данные.
Я не знаю, как синхронизировать пять потребителей и одного производителя. В настоящее время у меня есть два флага: runFlag и doneFlag. Когда потребитель читает новые данные, я хочу установить для runFlag значение true, чтобы начать вычисления, и я хочу установить для doneFlag значение false, поскольку вычисления еще не завершены. Однако, если я устанавливаю doneFlag в false для одного потребителя, он может быть ложным для другого потребителя до того, как этот потребитель сможет проверить флаг.
Надеюсь, мой вопрос достаточно конкретен. Пожалуйста, дайте мне знать, если есть что-то еще, что я могу предоставить. Кроме того, я просто ищу общее представление о том, как действовать дальше. Я знаю, что есть несколько способов сделать это, но я не уверен, какой из них будет работать лучше всего.
Спасибо!