從文檔:http://docs.python.org/2/library/thread當主線程調用sys.exit()時,其他線程會發生什麼?
當主線程退出,這是定義系統中的其他 線程是否存活。在使用本地線程實現的SGI IRIX上,它們能夠存活。在大多數其他系統上,它們在不執行 try ... finally子句或執行對象析構函數時被殺害。
在這裏,在文檔(http://docs.python.org/2/library/threading)它說:
線程可以被標記爲「守護線程」。這個 標誌的意義在於,只有守護程序線程 剩下時,整個Python程序纔會退出。初始值是從創建線程繼承的。
讓我們來談談這裏的非守護線程。因爲第一個引號沒有對非守護線程進行任何特殊的引用,所以我會假設,即使非守護線程在主線程退出時也應該被終止。但是,第二個引語表明了另外一點。事實上,當主線程退出時,非守護線程確實不會被終止。那麼,這裏首先引用的是什麼?
編寫代碼並嘗試使用 –
看起來,'thread'模塊將所有事物視爲守護進程線程,而'threading'則添加了「非守護進程」線程的概念。 –
@ user2799617:我編寫了代碼,得出結論「當主線程退出時,非守護線程確實不會被終止」。這就是爲什麼,我想知道什麼時候第一次報價適用,因爲我的系統可能是其中一個「大多數其他系統」:Ubuntu 12.10運行Python 2.7 – gjain