У меня есть эта архитектура:
У меня есть поток, который постоянно контролирует состояние общей переменной.
Я хотел бы разработать систему, аналогичную Objective-C KVO
в с ++. На практике я хотел бы уведомить поток 02 об изменении состояния переменной.
Что вы называете такого рода паттерном?
Каков наилучший и самый простой способ сделать это?
Я думал, что у меня может быть метод thread01 addObserver, где вы передаете указатель на функцию, но я бы хотел, чтобы thread02 выполнял код этой функции (когда он будет готов)
Есть ли у вас предложения?
Некоторые примеры?
Он называется паттерном Observer и первоначально был описан в Шаблоны проектирования книга. Примеры в C ++ существуют например в CodeProject.
Чтобы решить ваши проблемы с потоками, функция обратного вызова, которую вы предоставляете наблюдаемому объекту, должна действовать как сигнал, который должен пробудить другой поток и сказать ему, чтобы он начал свою работу. Вы могли бы использовать переменная условия для этого сигнала.
Других решений пока нет …