Аналогичный Objective-C KVO в переполнении стека

У меня есть эта архитектура:

У меня есть поток, который постоянно контролирует состояние общей переменной.
Я хотел бы разработать систему, аналогичную Objective-C KVO в с ++. На практике я хотел бы уведомить поток 02 об изменении состояния переменной.

Что вы называете такого рода паттерном?

Каков наилучший и самый простой способ сделать это?

Я думал, что у меня может быть метод thread01 addObserver, где вы передаете указатель на функцию, но я бы хотел, чтобы thread02 выполнял код этой функции (когда он будет готов)

Есть ли у вас предложения?

Некоторые примеры?

3

Решение

Он называется паттерном Observer и первоначально был описан в Шаблоны проектирования книга. Примеры в C ++ существуют например в CodeProject.

Чтобы решить ваши проблемы с потоками, функция обратного вызова, которую вы предоставляете наблюдаемому объекту, должна действовать как сигнал, который должен пробудить другой поток и сказать ему, чтобы он начал свою работу. Вы могли бы использовать переменная условия для этого сигнала.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]