Проблема 1 писателя, многих читателей. Многопоточность C++

260
05 сентября 2017, 10:50

Есть поток-писатель, есть много потоков читателей. Вопрос в том, как реализовать ситуацию, когда поток-писатель пишет/обновляет данные в некотором поле, затем ждет, пока все читатели обработают эти данные (в этот момент писатель может рассчитывать обновление данных), когда они обработают, соответственно читатели НЕ пытаются повторно обработать уже обработанные данные, а ждут пока писатель обновит данные. Затем писатель сигналит читателям, что данные обновлены и те принимаются за работу.

Используется C++, MS VS 15/17, многопоточность стандартной библиотеки.

Пока моя идея сводится к использованию mutex (?, что если всех этих потоков много ~100000, нет ли ограничений на кол-во мьютексов) и condition variable. Вероятно, есть другое наиболее оптимальное решение и готовое.

READ ALSO
Как точно вывести время компиляции?

Как точно вывести время компиляции?

Чтобы вплоть до секундГде-то писали, что это все решается с помощью библиотеки <ctime> и временным типом time_t, но не работает

439
Прокрутка к якорю, но немного выше

Прокрутка к якорю, но немного выше

ПриветствуюПрокрутка к якорю на jQuery - очень популярная тема и у меня как раз вопрос по этому

228