關於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多執行緒程式設計相關的後臺執行緒和執行緒睡眠的全部內容,希望大家透過上面的兩個“栗子”能夠學會並使用!
好啦,今天咱們就聊到這吧,下次再見哦![再見]
相關內容
- 少兒程式設計,Scratch還是Python怎麼選?
- 怎麼理解Python語言基本演算法程式設計?
- 未來想往能源網際網路、人工智慧等方面發展,學程式設計的話是python還是java合適呢?
- python程式設計到底好不好學?
- 少兒程式設計教育應該從scratch還是python或者C C++開始呢?
- python程式設計如何透過重定向、管道或輸入檔案來作為指令碼的輸入?
- Python中程序和執行緒的區別詳解?
- 想學習一門職業技術,糾結於程式設計python和設計ui之間,該如何選擇?
- 30多歲學點東西提升,考MBA或者學Python程式設計怎麼選?
- 看現在程式設計很火,想自學Python,但不知道會有什麼用,大神有什麼建議?