Разве нить умирает, как только я убью программу, которая начала ее?Происходит ли нить, когда ее родитель мертв?
Вероятно, это связано с моим английским, но я не мог найти его здесь:
https://docs.python.org/2/library/threading.html
Разве нить умирает, как только я убью программу, которая начала ее?Происходит ли нить, когда ее родитель мертв?
Вероятно, это связано с моим английским, но я не мог найти его здесь:
https://docs.python.org/2/library/threading.html
Да, когда процесс killed (например, отправив его SiGKILL
), все нити расторгнуть.
Стоит отметить, что это не относится к Python.
Как примечание стороны. Это не относится к Python, но в целом, если родитель закрыт, то его потоки также закрываются. С вилками - это еще одна проблема. –
Извините, но это мусор. Только начальная нить процесса является специальной, все остальные равны, и в частности нет отношения родитель-потомок между потоками. Кроме того, даже поведение, когда начальная нить завершается, не является согласованной между системами, как упомянуто выше. Если вы хотите сказать, что завершение процесса связано с убийством всех его потоков, то это правда, но это совсем другое дело. –
@UlrichEckhardt: Подождите, какая часть этого мусора? Весь мой ответ заключается в том, что он убивает процесс (например, отправив его ['SIGKILL'] (http://en.wikipedia.org/wiki/Unix_signal#SIGKILL)), все его потоки прекращаются. Какая часть этого противоречива? – NPE
Кажется, что this is the part of the documentation you're looking for, и в нем говорится:
Когда основной поток выходит, это система, определена ли выжить другие потоки. В SGI IRIX с использованием встроенной реализации потока они выживают. В большинстве других систем они убиваются без выполнения попыток ... finally клаузулы или выполнение деструкторов объектов.
Так что это не то, что Python не определяет - он может варьироваться в зависимости от конкретной ОС.
Этого не может быть, потому что он вообще не связан с python. Когда вы убиваете программу/процесс, ОС освобождает все связанные с ними ресурсы. –
Вместо этого вы должны обратиться к основным [thread] (https://docs.python.org/2/library/thread.html) документам, в котором говорится: «Когда основной поток завершается, определяется система, выживают ли другие потоки , В SGI IRIX с использованием встроенной реализации потока они выживают. На большинстве других систем они убиваются без выполнения попыток ... наконец, клаузулы или выполнение объектов-деструкторов. ' – georg
Спасибо, georg очень оценен –