Почему не завершается Daemon поток
Я создал программу в которой есть 3 потока: Основной, побочный и побочный от побочного (:D). Другими словами, я пытаюсь создать поток, из которого создаются все другие потоки. Чтобы, убив первый поток, умерли и все остальные потоки. Прочитал про Daemon потоки, что они умирают, когда завершается основной поток или поток, в котором они были запущены. Я так и сделал: создал поток, а из него уже другой, но со свойством Daemon=True. Но при убийстве родительского потока демонический не завершается. С чем это связано?
Ответы (2 шт):
Главное правило здесь такое: "весь процесс завершается, когда завершается последний не демон поток".
При этом все оставшиеся потоки-демоны завершаются, по сути, аварийно. Идея в том, чтоб не главные потоки не блокировали завершение процесса.
Остановка родительского потока никак не влияет на порожденный им демон (или не демон), разве что косвенно, если это был последний не демон.
Потоки в питоне может завершить только сам поток, нет методов завершить его извне.
В вашем случае надо запустить процесс, в котором создадите демонов. Убив процесс демоны завершатся с ним.