首頁>技術>

關於Python多執行緒程式設計的內容,上次已經和大家共同探討了執行緒的join()方法,它可以讓一個執行緒等待另一個執行緒完成,即某個程式執行流中如果呼叫其他執行緒的join()方法時,呼叫執行緒將會被阻塞,一直等到被join()方法加入的join執行緒執行完成為止。今天呢,咱們接著上次講解的內容繼續和大家探討Python多執行緒程式設計相關的東東!

首先,咱們來聊聊Python多執行緒程式設計相關的後臺執行緒

到這可能有朋友會問了:什麼是後臺執行緒呢?其實後臺執行緒就是英文中的Daemon Thread,顧名思義,它是在後臺執行的,它的存在是為了為其他執行緒提供服務。在Python或Java語言中,最為經典的後臺執行緒當屬垃圾回收執行緒。

其實呢,後臺執行緒還有一個獨特的特徵,就是如果所有的前臺執行緒都消亡滅掉了,此時後臺執行緒就會自動消亡

在Python中如果想指定後臺執行緒,就需要呼叫Thread物件的daemon屬性,好啦,為了大家能夠更好的理解,下面咱們就舉個“栗子”吧:

上面就是咱們所編寫的程式碼,咱們一起來分析一下,上面紅色方框中的程式碼:td.daemon=True意思是將td執行緒設定為後臺執行緒,然後呼叫start()函式來啟動該執行緒,然後在for迴圈中,當迴圈變數i等於9時才會結束,但是你會發現,此後臺執行緒並不能執行到i=9,因為當前臺執行緒執行結束後,程式就會主動退出了,此時後臺執行緒也就相應的結束了。

下面咱們就呼叫Python直譯器來執行一下看看效果吧:

綜上可知,在Python中對於後臺執行緒有兩種方式可以建立:

1) 在程式設計中主動將執行緒的daemon屬性設定為True;

2) 將後臺執行緒啟動的執行緒預設為後臺執行緒。

下面,咱們再聊聊Python多執行緒程式設計中相關的執行緒睡眠

首先想象一種場景,如果你需讓當前正在執行的執行緒短暫暫停一會,也就是所謂的讓其進入阻塞狀態,那麼可以透過呼叫time模組的sleep(secs)函式來實現,其中引數secs表示暫停的時間是多少秒。

其實,如果透過sleep()將一個執行中的執行緒設定為執行緒睡眠後,那麼在該執行緒睡眠期間,它是不會獲得執行的機會的,下面咱們還是舉個“栗子”來體會一下吧:

上面就是咱們所編寫的執行緒睡眠相關的程式碼,下面就呼叫一下Python直譯器來看看效果吧:

透過輸出的時間可以看到總共輸出了10個字串,其中每輸出兩個字串的時間間隔為1秒。

上面就是咱們今天所聊的關於Python多執行緒程式設計相關的後臺執行緒和執行緒睡眠的全部內容,希望大家透過上面的兩個“栗子”能夠學會並使用!

好啦,今天咱們就聊到這吧,下次再見哦![再見]

23
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Python迴圈語句彙總講解