Как сделать неблокирующимся и потокобезопасным получение значения из класса в любой момент?
Есть объект в отдельном потоке, который достаточно быстро создаёт некоторое значение, пусть пока что просто счётчик.
Другие классы запрашивают значение по мере своей готовности.
Вопрос в том, как сделать, чтобы каждый класс "слушателя" мог получить значение в любой момент, при этом не блокируя поток генератора?
То есть, использование Мьютексов отпадает. Через сигналы слоты тоже не вариант, т.к. тогда генератор будет в холостую выпускать сигналы (а копировать значение затратно).
Думал писать сначала в одну переменную, потом в другую, но тогда всё равно может произойти запись в ту, которая сейчас считывается кем-то...
Напрямую можно безопасно обращаться только если в методе нет записи в память самого класса.
Если там просто счетчик то следует использовать мьютекс.
Можно организовать запрос-ответ по механизму сигнал слотов Qt.
Так же можно подключить сигнал слот с типом Qt:: BlockingQueuedConnection но это будет работать аналогично как с мьютексом.