python join 和setDaemon 簡介

Python多線程編程時,常常會用到join()和setDaemon()方法編程

一、join ()方法:主線程A中,建立了子線程B,而且在主線程A中調用了B.join(),那麼,主線程A會在調用的地方等待,直到子線程B完成操做後,才能夠接着往下執行,那麼在調用這個線程時能夠使用被調用線程的join方法。多線程

原型:join([timeout])函數

 裏面的參數時可選的,表明線程運行的最大時間,即若是超過這個時間,無論這個此線程有沒有執行完畢都會被回收,而後主線程或函數都會接着執行的。spa

 

二、setDaemon()方法。主線程A中,建立了子線程B,而且在主線程A中調用了B.setDaemon(),這個的意思是,把主線程A設置爲守護線程,這時候,要是主線程A執行結束了,就無論子線程B是否完成,一併和主線程A退出.這就是setDaemon方法的含義,這基本和join是相反的。此外,還有個要特別注意的:必須在start() 方法調用以前設置,若是不設置爲守護線程,程序會被無限掛起。線程

程序運行中,執行一個主線程,若是主線程又建立一個子線程,主線程和子線程就分兵兩路,分別運行,那麼當主線程完成想退出時,會檢驗子線程是否完成。若是子線程未完成,則主線程會等待子線程完成後再退出。可是有時候咱們須要的是,只要主線程完成了,無論子線程是否完成,都要和主線程一塊兒退出,這時就能夠用setDaemon方法了。原型

相關文章
相關標籤/搜索