国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python threading模塊的使用指南

瀏覽:15日期:2022-06-17 14:02:20
目錄1. threding模塊創建線程對象2. threding模塊創建多線程3. 多線程的參數傳遞4. 線程產生的資源競爭1. threding模塊創建線程對象

接上述案例,我們可以利用程序阻塞的時間讓程序執行后面的任務,可以用多線程的方式去實現。對應的需要我們借助threading模塊去實現:如下所示

import timeimport threadingdef work():'''只有函數對象才能?煙錈?呋?''print(’5.洗茶杯: 1min ’ )time.sleep(1)print(’6.放茶葉: 1min ’ )time.sleep(1)start_time = time .time()print( ’1.洗壺: 1min ’ )time.s1eep(1)print( ’2.灌涼水:1min ’ )time.sleep(1)print( ’3.燒水: 1min ’ )time.sleep(1)print( ’4.等水燒開:3min ’ )work_thread = threading.Thread(target=work)# 啟動線程對象work_thread.start()time.sleep(1) # 5.洗茶杯: 1mintime.sleep(1) # 6.放茶葉: 1mintime.sleep(1)print( ’7.泡茶:1min ’ )time.sleep(1)print(’總共花了: ’,time.time() - start_time)

以上案例是一個單線程,需要特別注意的是threading模塊操作線程所操作的必須是函數對象。通過threding模塊可以把一個普通的函數對象轉化為線程對象。

2. threding模塊創建多線程

當一個進程啟動之后,會默認產生一個主線程,因為線程是程序執行流的最小單元,當設置多線程時,主線程會創建多個子線程,在python中,默認情況下,主線程執行完自己的任務以后,就退出了,此時子線程會繼續執行自己的任務,直到自己的任務結束。

import timeimport threadingdef upload():print('開始上傳文件...')time.sleep(2)print('完成上傳文件...')def down1oad():print('開始下載文件...')time.s1eep(2)print('完成下載文件...')if __name__ == ’__main__’:upload_thread = threading.Thread(target=up1oad)up1oad_thread .start()up1oad_thread.join()down1oad_thread = threading.Thread(target=down1oad,daemon=True)down1oad_thread.start()print(’主線程結束’)

也就是說主線程在分配任務時會創建多個子線程,子線程的任務進度不會阻礙主線程的執行。但是主線程會等待子線程執行任務完之后才結束主線程。也就是說實際上主線程是先執行完任務的,如果你想在主線程執行完之后就結束整個線程的話,那么可以設置守護主線程。

3. 多線程的參數傳遞

多線程的參數傳遞用args接受位置參數,用kwargs接受關鍵字參數。如下所示:

import threadingdef get(ur1,header=None): print(ur1) print(header)for url in [ ’https : / /www.baidu.com’, ’https:/ /www. soso.com ’ ,’ https: / /www . 360. com’]: # threading.Threadget_thread = threading. Thread(target=get,args=(ur1, ), kwargs={ ’ header ’:{ ’user-agent ’ : ’ pythonrequests’}}) get_thread.start4. 線程產生的資源競爭

首先我們來看一個案例:

import threadingimport timeimport randomdef add1(n): for i in range(100) :time.sleep(random.randint(1,3))with open( ’he7lo.txt’, mode=’a’, encoding=’utf-8 ’ ) as f: f.write(f’in} he1lo wor1d !’+ ’he7lo wor1d !’*1024) f.write(’ n ’)if __name__ == ’___main__’ : for n in range(10) :t1 = threading. Thread(target=add1,args=(n,))t1.start()

以上就是python threading模塊的使用指南的詳細內容,更多關于python threading模塊的使用的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产精品免费一级在线观看 | 午夜一级片 | 亚洲成a人片在线看 | 欧美一区不卡二区不卡三区 | 国产一级做a爰片在线看 | 欧美一级xxxx俄罗斯一级 | 日本中文字幕不卡免费视频 | 九草在线 | 一级一片免费播放 | 久久精品a亚洲国产v高清不卡 | 久久综合精品视频 | 在线综合亚洲欧美自拍 | 亚洲一区二区三区免费视频 | 亚洲精品成人av在线 | 露脸国产野战最新在线视频 | 92精品国产自产在线观看 | 亚洲国产精品久久久久久 | 久久semm亚洲国产 | 亚洲欧美日韩精品香蕉 | 国产成人盗摄精品 | 男同黄网站 | 国产精品自拍一区 | 艹美女视频 | 91刘亦菲精品福利在线 | 欧美国产综合在线 | 国内自产拍自a免费毛片 | 欧美精品一区二区三区视频 | 八戒午夜精品视频在线观看 | 久久久精品2018免费观看 | 很黄很暴力深夜爽爽无遮挡 | 波多野结衣免费视频观看 | 亚洲国产成人超福利久久精品 | 在线视频一二三区2021不卡 | 久草免费看 | 欧美成人久久久免费播放 | 国产欧美日韩精品第一区 | 久久久久国产成人精品亚洲午夜 | 国产精品九九免费视频 | 成人国产精品999视频 | 91热久久免费精品99 | 久香草视频在线观看免费 |