Почему не завершается Daemon поток

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


Ответы (2 шт):

Автор решения: Roman Konoval

Главное правило здесь такое: "весь процесс завершается, когда завершается последний не демон поток".

При этом все оставшиеся потоки-демоны завершаются, по сути, аварийно. Идея в том, чтоб не главные потоки не блокировали завершение процесса.

Остановка родительского потока никак не влияет на порожденный им демон (или не демон), разве что косвенно, если это был последний не демон.

→ Ссылка
Автор решения: eri

Потоки в питоне может завершить только сам поток, нет методов завершить его извне.

В вашем случае надо запустить процесс, в котором создадите демонов. Убив процесс демоны завершатся с ним.

→ Ссылка