У меня есть процесс, который получает несколько заданий и выбирает поток из пула потоков и назначает ему задание, этот поток в свою очередь может порождать другой набор потоков из своего собственного пула потоков. Теперь, когда запрос STOP для задания поступает в основной процесс, он должен быть перенаправлен в соответствующий поток для этого запроса, и все потоки, связанные с этим заданием, должны очиститься и завершиться. Мой вопрос заключается в том, как уведомить рабочие потоки о » СТОП».
Можно использовать глобальную переменную, и рабочие потоки могут часто опрашивать ее, но есть много функций, которые может выполнять рабочий, и везде могут работать добавления проверок.
Есть ли чистый подход? какой-то слой сообщений. кстати код C ++
Boost.Thread библиотека — это оболочка для pthreads, которая также переносима на Windows. boost::thread
класс имеет interrupt()
метод, который прервет поток на следующем точка прерывания.
Boost.Thread также имеет thread_group
класс, который предоставляет коллекцию связанных потоков. thread_group
также имеет interrupt()
метод, который вызывает interrupt()
на каждом потоке в группе потоков.
Других решений пока нет …