Python多線程:主線程等待所有子線程結(jié)束代碼
我就廢話不多說了,還是直接看代碼吧!
from time import ctime import threading import time def a(): #for i in range(5): print('Program a is running... at ', ctime(),u'.線程名為:',threading.current_thread().name ) time.sleep(0.2) def b(x): #for i in range(5): print('Program b('+x+') is running... at ', ctime(),u'.線程名為:',threading.current_thread().name ) time.sleep(0.1) if __name__ == '__main__': print('Mainthread %s is running...' % threading.current_thread().name) thread_list = [] for i in range(400):#同時(shí)運(yùn)行多個(gè) t1= threading.Thread(target=a) thread_list.append(t1) t2 = threading.Thread(target=b, args=('Python',)) thread_list.append(t2) t3 = threading.Thread(target=b, args=('Java',)) thread_list.append(t3) for t in thread_list: t.setDaemon(True) # 設(shè)置為守護(hù)線程,不會(huì)因主線程結(jié)束而中斷 t.start() for t in thread_list: t.join() # 子線程全部加入,主線程等所有子線程運(yùn)行完畢 print('Mainthread %s ended.' % threading.current_thread().name)
補(bǔ)充知識(shí):Python主線程結(jié)束為什么守護(hù)線程還在運(yùn)行?
在實(shí)際的交互模式中,主線程只有在Python退出時(shí)才終止,所以action函數(shù)輸出結(jié)果還是被打印出來了?!?/p>
按照我的理解應(yīng)該是說,在shell里主線程在輸出結(jié)果之后并沒有真的結(jié)束,所以action還會(huì)打印結(jié)果。
建議把程序編譯出來,放到另外的環(huán)境中測(cè)試,估計(jì)就會(huì)是你要的結(jié)果了。
以上這篇Python多線程:主線程等待所有子線程結(jié)束代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
pyqt5使用按鈕進(jìn)行界面的跳轉(zhuǎn)方法
今天小編就為大家分享一篇pyqt5使用按鈕進(jìn)行界面的跳轉(zhuǎn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06python的mysql數(shù)據(jù)庫建立表與插入數(shù)據(jù)操作示例
這篇文章主要介紹了python的mysql數(shù)據(jù)庫建立表與插入數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了python操作mysql數(shù)據(jù)庫建立表與插入數(shù)據(jù)相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09基于Python實(shí)現(xiàn)一個(gè)簡單的敏感詞過濾功能
這篇文章主要介紹了Python實(shí)現(xiàn)敏感詞過濾功能的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)我們學(xué)習(xí)python有定的幫助,感興趣的小伙伴們可以參考一下2023-06-06Python使用matplotlib繪制圓形代碼實(shí)例
這篇文章主要介紹了Python使用matplotlib繪制圓形代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python中關(guān)于字符串對(duì)象的一些基礎(chǔ)知識(shí)
這篇文章主要介紹了詳解Python中的字符串對(duì)象,關(guān)于字符串的操作和特性是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-04-04Python序列的推導(dǎo)式實(shí)現(xiàn)代碼
推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列(的一種結(jié)構(gòu)體),是python的一種獨(dú)有特性,在python中共有三種推導(dǎo),列表推導(dǎo)式和字典推導(dǎo)式,集合推導(dǎo)式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-07-07Python??序列化反序列化和異常處理的問題小結(jié)
這篇文章主要介紹了Python?序列化反序列化和異常處理,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12Python標(biāo)準(zhǔn)庫datetime?date模塊的詳細(xì)介紹
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫datetime?date模塊的詳細(xì)介紹,datetime是Python提供的操作日期和時(shí)間的標(biāo)準(zhǔn)庫,主要有datetime.date模塊、datetime.time模塊及datetime.datetime模塊2022-07-07Starship定制shell提示符實(shí)現(xiàn)信息自由
這篇文章主要介紹了Starship定制shell提示符的實(shí)現(xiàn),讓你需要的所有信息觸手可及,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03