2009-09-11 12 views

回答

19

守護線程不會阻止應用程序退出。程序在所有非守護線程(包括主線程)完成時結束。因此,一般來說,如果您在後臺執行某些操作,則可能需要將該線程設置爲守護程序,以便在應用程序可以退出之前不必顯式地讓該線程的函數返回。

例如,如果您正在編寫GUI應用程序,並且用戶關閉了主窗口,則程序應該退出。但是如果你有非守護線程掛起,它不會。

從文檔:http://docs.python.org/library/threading.html#threading.Thread.daemon

其初始值是從 創建線程繼承;主線程 不是守護進程線程,因此 在主線程 中創建的所有線程都默認爲daemon = False。

當 沒有活動的非守護程序線程時,整個Python程序將退出。

+1

好的。現在我對守護進程有清晰的瞭解。謝謝哥們! – 2009-09-13 14:45:05

+1

那麼關閉應用程序時守護線程會發生什麼情況? – 2015-07-05 17:31:23

+1

@Matteo守護程序線程在程序退出時被終止。 – 2016-06-28 15:44:42