У меня есть некоторые темы рыбалки в очередь на работу, что-то вроде этого:Кто останавливает мои темы?
class Worker(Thread):
[...]
def run(self):
while not self.terminated:
job = myQueue.get_nowait()
job.dosomething()
sleep(0.5)
Теперь self.terminated просто булево значение я использую для выхода из цикла, но это проблема, несколько раз в день они перестают работать без моего вмешательства. Все они, кроме одного: приложение начинается с, скажем, 5 рабочих потоков и в произвольное время я проверяю их, и один работает только. Все остальные имеют как _Thread__initialized, так и _Thread__stopped fields true. Нитки и задания не взаимодействуют друг с другом. Что я должен искать?
PS: Я понимаю, что очень сложно попытаться выяснить проблему без фактического кода, но она огромна.
UPDATE: на самом деле Queue.Empty является единственным исключением в ловушке - думаю, я полагал, что все внутренние ошибки заданий распространяются без уничтожения потоков eheh - поэтому я собираюсь заблокировать все исключения и увидеть ...
Действительно сопротивляясь желанию предложить, чтобы это был Джон Скит .. –