независимая от платформы связь между потоками

У меня есть процесс, который получает несколько заданий и выбирает поток из пула потоков и назначает ему задание, этот поток в свою очередь может порождать другой набор потоков из своего собственного пула потоков. Теперь, когда запрос STOP для задания поступает в основной процесс, он должен быть перенаправлен в соответствующий поток для этого запроса, и все потоки, связанные с этим заданием, должны очиститься и завершиться. Мой вопрос заключается в том, как уведомить рабочие потоки о » СТОП».

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

Есть ли чистый подход? какой-то слой сообщений. кстати код C ++

0

Решение

Boost.Thread библиотека — это оболочка для pthreads, которая также переносима на Windows. boost::thread класс имеет interrupt() метод, который прервет поток на следующем точка прерывания.

Boost.Thread также имеет thread_group класс, который предоставляет коллекцию связанных потоков. thread_group также имеет interrupt() метод, который вызывает interrupt() на каждом потоке в группе потоков.

1

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

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

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