2016-05-05 115 views
1

我正在研究一個python應用程序,其中主線程創建一個對象,說x,一個特定的類。如何在主線程退出後保持守護進程線程存活?

然後它啓動一個線程,該線程在此對象的其中一個方法x中啓動執行。該方法有一個while True:循環,所以它的無限。

然後它啓動另一個線程,該線程在同一對象x的另一個方法中開始執行。此方法也有一個無限循環while True:

我已經通過調用t1.setDaemon(True)兩個線程作爲守護進程,但似乎都停止執行一旦主線程退出。

如何在父線程完成後讓孩子活着? 或者我應該更改設計以使用cron作業還是流程分叉?

回答

1

文檔說

線程可以被標記爲「守護線程」。這個標誌的意義在於,只有守護進程線程退出時,整個Python程序纔會退出。初始值是從創建線程繼承的。該標誌可以通過守護進程屬性設置。

如果你想保持程序運行,你必須至少有一個非守護進程線程。

相關問題