Из документов: http://docs.python.org/2/library/threadЧто происходит с другими потоками, когда главный поток вызывает sys.exit()?
Когда основной поток выходит, это система, определена ли выжить другие нити. В SGI IRIX с использованием встроенной реализации потока, они выживают. В большинстве других систем они убиваются без выполнения try ... finally clauses или выполнения деструкторов объектов.
И здесь, в документации (http://docs.python.org/2/library/threading) он говорит:
Нить может быть помечен как «демон нить». Значение этого флага заключается в том, что вся программа Python завершается, когда оставлены только потоки демонов . Начальное значение наследуется от создающего потока.
Давайте поговорим только о не-демонах здесь. Поскольку первая цитата не делает никакой особой ссылки на потоки не-демона, я бы предположил, что даже потоки не-демона должны быть убиты, если основной поток выходит. Однако вторая цитата предполагает иное. И фактически, нити не-демона действительно не убиваются, когда основной поток завершается. Итак, в чем смысл первой цитаты здесь?
Напишите код и попробуйте его –
Казалось бы, модуль 'thread' обрабатывает все как потоки демона, а' threading' добавляет концепцию потоков «non daemon». –
@ user2799617: Я написал код и пришел к выводу, что нить не-демона действительно не убивается, когда главный поток выходит ».Вот почему мне интересно, когда применяется первая цитата, так как моя система, вероятно, является одной из тех «самых других систем»: Ubuntu 12.10 работает python 2.7 – gjain