@Dima_kras

Как передать сигнал, что пора завершить в процесс/поток на Python?

Добрый день, разбираюсь с многопоточностью/процессами в Python.
Задача такая: есть поток/процесс "А" опрашивает датчик, и пишет результат в базу.
Также запущен другой процесс/поток "В", при наступлении события в потоке В надо передать сигнал в поток "А" чтобы остановить опрос датчика.

Как это сделать?
Пока идея такая: поток А проверяет флаг в базе, а когда надо поток В перезаписывает флаг в базе и при следующей итерации поток А останавливается, прочитав новый флаг из базы.
Ну или через "глобальную" переменную.
Но может это можно сделать нормально?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 2
Zarom
@Zarom
Мастер на все руки из жопы
Вариант с переменной - ок.
Вариант получше https://docs.python.org/3/library/threading.html#c...
Ответ написан
@0pauc0
Учитывая, что речь не идет об огромных скоростях обработки (опрос датчика, запись в базу данных), представляется, что проще и надежней будет требуемое делать в одном потоке с установкой и отслеживанием флагов о наступлении событий.
Конечно, надо следить за тем, чтоб циклы ожиданий событий были гарантированно неблокируемы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы