Как уведомить queue.join () в python о прекращении блокировки, даже если текущая очередь содержит необработанные элементы? - PullRequest
1 голос
/ 05 февраля 2020

У меня есть основной поток, блок которого ожидает элементы в очереди приоритетов (PQ) для обработки потоком потребителя. Поток потребителя получает элементы из другого потока популяции. Всякий раз, когда поток потребителя получает элемент TERMINATOR с высоким приоритетом, он умирает. Но поскольку основной поток ожидает обработки элементов очереди, он никогда не завершается. Есть ли способ уведомить меня о возврате PQ.join () без использования while l oop для очистки моей очереди (большое количество элементов в очереди вызывает большую задержку, если я использую while l oop)

1 Ответ

2 голосов
/ 05 февраля 2020

Вы могли бы ждать потребительский поток вместо приоритетной очереди, кажется, что это то, чего вы хотите ждать, то есть consumer_thread.join() вместо PQ.join().

...