threading模塊基本幾點使用問題

第一點threading中使用多線程兩種方法:

1.使用回調

2.重寫run方法

關於守護進程setDaemon以及join方法問題

(1)Python中默認setDaemon(false)是設置用戶線程爲守護線程

效果:當用戶任務執行完畢後,用戶線程退出,其他子線程依舊會執行,直到退出。

(2)當設置子線程爲守護進程,即setDaemon(true)

效果:當用戶任務執行完畢後,用戶線程退出,其他子線程也會中斷退出。

(3)使用join()方法後

效果:爲了完成線程同步,即當用戶任務執行完成後,主線程阻塞等待,直到子線程任務都執行完成纔會退出。

(4)當然join()裏面有個timeout參數

如果設置了守護進程setDaemon(true)則給一個timeout每個子線程,若時間到了,直接殺死子線程。

如果沒有設置守護進程setDaemon(false),則給一個timeout給用戶線程,不管其執行是否完畢,都會被kill,其他子線程依舊繼續執行。

如果創建多個線程,注意多個線程join()的順序問題。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章