亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python threading模塊的使用指南

瀏覽:11日期:2022-06-17 14:02:20
目錄1. threding模塊創(chuàng)建線程對(duì)象2. threding模塊創(chuàng)建多線程3. 多線程的參數(shù)傳遞4. 線程產(chǎn)生的資源競(jìng)爭(zhēng)1. threding模塊創(chuàng)建線程對(duì)象

接上述案例,我們可以利用程序阻塞的時(shí)間讓程序執(zhí)行后面的任務(wù),可以用多線程的方式去實(shí)現(xiàn)。對(duì)應(yīng)的需要我們借助threading模塊去實(shí)現(xiàn):如下所示

import timeimport threadingdef work():'''只有函數(shù)對(duì)象才能?煙錈?呋?''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.等水燒開(kāi):3min ’ )work_thread = threading.Thread(target=work)# 啟動(dòng)線程對(duì)象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)

以上案例是一個(gè)單線程,需要特別注意的是threading模塊操作線程所操作的必須是函數(shù)對(duì)象。通過(guò)threding模塊可以把一個(gè)普通的函數(shù)對(duì)象轉(zhuǎn)化為線程對(duì)象。

2. threding模塊創(chuàng)建多線程

當(dāng)一個(gè)進(jìn)程啟動(dòng)之后,會(huì)默認(rèn)產(chǎn)生一個(gè)主線程,因?yàn)榫€程是程序執(zhí)行流的最小單元,當(dāng)設(shè)置多線程時(shí),主線程會(huì)創(chuàng)建多個(gè)子線程,在python中,默認(rèn)情況下,主線程執(zhí)行完自己的任務(wù)以后,就退出了,此時(shí)子線程會(huì)繼續(xù)執(zhí)行自己的任務(wù),直到自己的任務(wù)結(jié)束。

import timeimport threadingdef upload():print('開(kāi)始上傳文件...')time.sleep(2)print('完成上傳文件...')def down1oad():print('開(kāi)始下載文件...')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(’主線程結(jié)束’)

也就是說(shuō)主線程在分配任務(wù)時(shí)會(huì)創(chuàng)建多個(gè)子線程,子線程的任務(wù)進(jìn)度不會(huì)阻礙主線程的執(zhí)行。但是主線程會(huì)等待子線程執(zhí)行任務(wù)完之后才結(jié)束主線程。也就是說(shuō)實(shí)際上主線程是先執(zhí)行完任務(wù)的,如果你想在主線程執(zhí)行完之后就結(jié)束整個(gè)線程的話,那么可以設(shè)置守護(hù)主線程。

3. 多線程的參數(shù)傳遞

多線程的參數(shù)傳遞用args接受位置參數(shù),用kwargs接受關(guān)鍵字參數(shù)。如下所示:

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. 線程產(chǎn)生的資源競(jìng)爭(zhēng)

首先我們來(lái)看一個(gè)案例:

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模塊的使用指南的詳細(xì)內(nèi)容,更多關(guān)于python threading模塊的使用的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 91色久| 中日黄色大片 | 亚洲成网站 | 特级xxxxx欧美孕妇孕交 | 国产精品视频第一区二区 | 国产一级做a爰片在线 | 欧洲一级做a爱在线观看 | 精品一成人岛国片在线观看 | 97精品在线播放 | 美女视频一区二区 | 中日韩黄色大片 | 91短视频版高清在线观看免费 | 国产大尺度福利视频在线 | 国产欧美视频在线观看 | 日本与大黑人xxxx | 国模福利视频在线播放 | 欧美极品妇xxxxxbbbbb | 亚洲精品国产成人99久久 | 尤物在线 | 91四虎国自产在线播放线 | 国产精品久久久久9999 | 一级大毛片 | 黄色录像免费看 | 人成精品 | 亚洲欧美另类在线视频 | 亚州综合网| 亚洲欧美中日韩 | 国产精品亚洲一区二区三区在线观看 | 日本老熟妇毛茸茸 | 亚洲欧美日韩中文字幕网址 | 青草青草伊人精品视频 | 免费又黄又爽又猛大片午夜 | 2020天堂中文字幕一区在线观 | 快猫在线观看入口免费网站满十八 | 亚洲国产情侣一区二区三区 | 日韩免费一区二区三区 | 日本久久久久久久中文字幕 | 日本大学生免费一级一片 | 污香蕉视频在线观看 | 色中文字幕 | 色播亚洲精品网站 亚洲第一 |