Ниды Python убиты, когда основная резьба выходит только с одним потоком, но выживает, когда создается более одного потокPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ниды Python убиты, когда основная резьба выходит только с одним потоком, но выживает, когда создается более одного поток

Сообщение Anonymous »

У меня есть функция Python, украшенную 1-минутным тайм-аутом. Внутри этого я порождает один или несколько рабочих потоков, которые каждый запускает 2-минутный сон с помощью динамически выполненного скрипта (с помощью exec () в пользовательском исполнителе). Вот небольшая часть кода: < /p>
def _execute_parallel(self, input_params, connector_init_params, code, task):
order = -1
threads = []
output_queue = []
while input_params:
ipparam = input_params.pop(0)
order = order + 1

th = threading.Thread(target=self._execute, args=(connector_init_params, code, task, ipparam, order, output_queue,))
th.start()
threads.append(th)

for th in threads:
th.join()

return output_queue
< /code>
Фактическое поведение: < /p>
Если num_workers = 1, родитель попадает в 60-секундную тайм-аут, а единый работник также убит до его 2-минутного сна. /> Ожидаемое поведение:
детские потоки должны продолжать работать до завершения независимо от того, сколько создано, поскольку ни один из них не является темами демонов. Почему одного ребенка убивают, когда есть только один работник, но выживает, когда есть два? < /P>
среда: < /p>
python 3.9 на macos
Использование декора @timeout (поднимает исключение в основной нити через 60 с)
Custom Executior использует Exec () под примером, но и тем же поведение в этом поведенном примере. Время жизни потока, и как я могу гарантировать, что рабочие потоки всегда переживают родитель по времени?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -but-survi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»