成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

Python 多線程之threading 模塊的使用

瀏覽:162日期:2022-06-22 14:25:53
簡介

Python 通過 _thread 和 threading 模塊提供了對多線程的支持,threading 模塊兼具了 _thread 模塊的現有功能,又擴展了一些新的功能,具有十分豐富的線程操作功能

創建線程

使用 threading 模塊創建線程通常有兩種方式:

1)使用 threading 模塊中 Thread 類的構造器創建線程,即直接對類 threading.Thread 進行實例化,并調用實例化對象的 start 方法創建線程;

2)繼承 threading 模塊中的 Thread 類創建線程類,即用 threading.Thread 派生出一個新的子類,將新建類實例化,并調用其 start 方法創建線程。

構造器方式

調用 threading.Thread 類的如下構造器創建線程:

threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)group:指定該線程所屬的線程組,目前該參數還未實現,為了日后擴展 ThreadGroup 類實現而保留。target:用于 run() 方法調用的可調用對象,默認是 None,表示不需要調用任何方法。args:是用于調用目標函數的參數元組,默認是 ()。kwargs:是用于調用目標函數的關鍵字參數字典,默認是 {}。daemon:如果 daemon 不是 None,線程將被顯式的設置為守護模式,不管該線程是否是守護模式,如果是 None (默認值),線程將繼承當前線程的守護模式屬性。

import timeimport threadingdef work(num): print(’線程名稱:’,threading.current_thread().getName(),’參數:’,num,’開始時間:’,time.strftime(’%Y-%m-%d %H:%M:%S’))if __name__ == ’__main__’: print(’主線程開始時間:’,time.strftime(’%Y-%m-%d %H:%M:%S’))t1 = threading.Thread(target=work,args=(3,)) t2 = threading.Thread(target=work,args=(2,)) t3 = threading.Thread(target=work,args=(1,))t1.start() t2.start() t3.start()t1.join() t2.join() t3.join()print(’主線程結束時間:’, time.strftime(’%Y-%m-%d %H:%M:%S’))

上述示例中實例化了三個 Thread 類的實例,并向任務函數傳遞不同的參數,start 方法開啟線程,join 方法阻塞主線程,等待當前線程運行結束。

繼承方式

通過繼承的方式創建線程包括如下步驟:1)定義 Thread 類的子類,并重寫該類的 run 方法;2)創建 Thread 子類的實例,即創建線程對象;3)調用線程對象的 start 方法來啟動線程。示例如下:

import timeimport threadingclass MyThread(threading.Thread):def __init__(self,num):super().__init__()self.num = numdef run(self):print(’線程名稱:’, threading.current_thread().getName(), ’參數:’, self.num, ’開始時間:’, time.strftime(’%Y-%m-%d %H:%M:%S’))if __name__ == ’__main__’:print(’主線程開始時間:’,time.strftime(’%Y-%m-%d %H:%M:%S’))t1 = MyThread(3) t2 = MyThread(2) t3 = MyThread(1)t1.start() t2.start() t3.start()t1.join() t2.join() t3.join()print(’主線程結束時間:’, time.strftime(’%Y-%m-%d %H:%M:%S’))

上述示例中自定義了線程類 MyThread,繼承了 threading.Thread,并重寫了 __init__ 方法和 run 方法。

守護線程

守護線程(也稱后臺線程)是在后臺運行的,它的任務是為其他線程提供服務,如 Python 解釋器的垃圾回收線程就是守護線程。如果所有的前臺線程都死亡了,守護線程也會自動死亡。來看個例子:

# 不設置守護線程import threadingdef work(num): for i in range(num):print(threading.current_thread().name + ' ' + str(i))t = threading.Thread(target=work, args=(10,), name=’守護線程’)t.start()for i in range(10): pass

# 設置守護線程import threadingdef work(num): for i in range(num):print(threading.current_thread().name + ' ' + str(i))t = threading.Thread(target=work, args=(10,), name=’守護線程’)t.daemon = Truet.start()for i in range(10): pass

上述示例直觀的說明了當前臺線程結束,守護線程也會自動結束。

如果你設置一個線程為守護線程,就表示這個線程是不重要的,在進程退出的時候,不用等待這個線程退出;如果你的主線程在退出的時候,不用等待哪些子線程完成,那就設置這些線程為守護線程;如果你想等待子線程完成后再退出,那就什么都不用做,或者顯示地將 daemon 屬性設置為 false。

線程本地數據

Python 的 threading 模塊提供了 local 方法,該方法返回得到一個全局對象,不同線程使用這個對象存儲的數據,其它線程是不可見的(本質上就是不同的線程使用這個對象時為其創建一個獨立的字典)。來看個示例:

# 不使用 threading.localimport threadingimport timenum = 0def work(): global numfor i in range(10):num += 1 print(threading.current_thread().getName(), num) time.sleep(0.0001) for i in range(5): threading.Thread(target=work).start()

上面示例中 num 是全局變量,變成了公共資源,通過輸出結果,我們發現子線程之間的計算結果出現了互相干擾的情況。

# 使用 threading.localnum = threading.local()def work(): num.x = 0for i in range(10):num.x += 1print(threading.current_thread().getName(), num.x) time.sleep(0.0001)for i in range(5): threading.Thread(target=work).start()

使用 threading.local 的示例中,num 是全局變量,但每個線程定義的屬性 num.x 是各自線程獨有的,其它線程是不可見的,因此每個線程的計算結果未出現相互干擾的情況。

定時器

threading 模塊提供了 Timer 類實現定時器功能,來看個例子:

# 單次執行from threading import Timerdef work(): print('Hello Python') # 5 秒后執行 work 方法t = Timer(5, work)t.start()

Timer 只能控制函數在指定的時間內執行一次,如果我們需要多次重復執行,需要再進行一次調度,想要取消調度時可以使用 Timer 的 cancel 方法。來看個例子:

# 重復執行count = 0def work(): print(’當前時間:’, time.strftime(’%Y-%m-%d %H:%M:%S’)) global t, count count += 1 # 如果 count 小于 5,開始下一次調度 if count < 5:t = Timer(1, work)t.start()# 指定 2 秒后執行 work 方法t = Timer(2, work)t.start()

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

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色老汉一区二区三区| 日韩一区二区三区电影在线观看| 在线日韩国产精品| 亚洲日本va在线观看| 97精品电影院| 欧美大肚乱孕交hd孕妇| 国内不卡的二区三区中文字幕| 午夜在线观看免费一区| 亚洲特级片在线| 欧美视频观看一区| 精品国产伦一区二区三区免费 | 91视频精品在这里| 91精品免费在线观看| 久久国产精品99精品国产| 色88888久久久久久影院野外| 亚洲国产综合色| 亚洲制服av| 亚洲福利一区二区三区| 最新亚洲一区| 亚洲男人电影天堂| 国产一区再线| 中文字幕av免费专区久久| 欧美 亚欧 日韩视频在线| 26uuu亚洲| 91亚洲精品久久久蜜桃网站| 久久精品一区蜜桃臀影院| 欧美一区激情| 国产精品美女视频| 亚洲小说欧美另类社区| 亚洲天堂2014| 国产午夜精品一区二区三区欧美| 一区二区三区国产| 国产伦精品一区二区三区视频黑人 | 日韩欧美国产一区在线观看| 高清不卡一区二区在线| 日韩视频中午一区| 99久久伊人久久99| 久久久久久久久久电影| 欧美日韩三区| 亚洲精品国产视频| 亚洲永久视频| 天天影视网天天综合色在线播放| 久久精品一二三区| 美腿丝袜一区二区三区| 欧美日韩国产中文| 懂色av中文一区二区三区| 久久蜜桃av一区二区天堂| 欧美91视频| 日韩理论片中文av| 亚洲自拍另类| 日韩电影在线观看电影| 3d成人h动漫网站入口| 成人avav影音| 亚洲天堂2014| 色哟哟亚洲精品| 国产一区二区三区免费看| 精品国内片67194| 欧美日韩18| 亚洲亚洲精品在线观看| 91久久精品一区二区| 国产成人精品影院| 久久看人人爽人人| 在线观看成人av| 亚洲国产精品人人做人人爽| 欧洲国内综合视频| 成人av午夜电影| 亚洲久本草在线中文字幕| 在线观看免费视频综合| 国产99精品国产| 国产精品国模大尺度视频| 免费欧美日韩| 国产在线播放一区| 国产日产精品1区| 噜噜噜久久亚洲精品国产品小说| 久久国产精品色| 国产三区在线成人av| 国产精品入口| 国产一区二区三区黄视频| www久久精品| 亚洲免费观看| 极品少妇xxxx精品少妇偷拍| 欧美激情在线观看视频免费| 久久久久久9| www.色综合.com| 亚洲观看高清完整版在线观看| 欧美二区三区的天堂| 欧美日韩一区二区三区在线观看免| 亚洲国产精品一区二区www| 91精品国产品国语在线不卡| 国产精品v欧美精品v日韩精品| 午夜欧美电影在线观看| 日韩一区二区电影| 国产欧美日韩在线播放| 国产美女娇喘av呻吟久久| 国产精品亲子乱子伦xxxx裸| 欧美综合亚洲图片综合区| 欧美午夜不卡| 久久福利资源站| 亚洲色图欧美激情| 在线综合+亚洲+欧美中文字幕| 黄色亚洲在线| 精品一区二区三区免费观看| 亚洲欧洲av另类| 911精品产国品一二三产区 | 欧美自拍偷拍一区| 国产在线日韩| 国产中文字幕一区| 亚洲欧美偷拍三级| 91精品在线麻豆| 夜夜精品视频| 成人午夜又粗又硬又大| 亚洲在线观看免费视频| 欧美不卡激情三级在线观看| 久久久久国产精品一区三寸| 欧美一区成人| 美女久久久精品| 亚洲欧美另类在线| 日韩欧美一区在线观看| 亚洲专区免费| 欧美精品成人| 精品一区二区久久| 亚洲色图20p| 日韩一区二区在线观看视频 | 久久久蜜桃精品| 欧洲av在线精品| 亚洲国产国产亚洲一二三| 国产成人丝袜美腿| 亚洲国产精品久久人人爱 | 日韩中文字幕一区二区三区| 国产精品久久久久久一区二区三区| 欧美狂野另类xxxxoooo| 亚洲一区二区毛片| 午夜精品免费| 国产精品小仙女| 午夜私人影院久久久久| 欧美国产精品久久| 91精品国产免费| 一本一道久久a久久精品综合蜜臀| 在线观看福利一区| 99久久99久久久精品齐齐| 韩国欧美国产1区| 亚洲va韩国va欧美va| 亚洲精品成a人| 国产精品视频一区二区三区不卡| 在线播放亚洲一区| 色屁屁一区二区| 国产伦精品一区二区三| 国内综合精品午夜久久资源| 国产成人午夜视频| 九色综合国产一区二区三区| 亚洲影视在线播放| 国产精品私人影院| 国产网红主播福利一区二区| 日韩片之四级片| 91精品国产综合久久蜜臀| 在线视频欧美区| 美女日韩在线中文字幕| 国产一区二区三区黄| 伊人久久婷婷色综合98网| 99re在线视频这里只有精品| 懂色av一区二区夜夜嗨| 国内精品久久久久影院一蜜桃| 午夜视频在线观看一区| 亚洲麻豆国产自偷在线| 亚洲欧美在线另类| 中文无字幕一区二区三区| 久久一夜天堂av一区二区三区| 欧美一区二区三区人| 欧美精品一二三| 欧美综合在线视频| 91国在线观看| 色中色一区二区| 久久亚洲图片| 色婷婷综合五月| 91福利社在线观看| 色婷婷综合久久久中文字幕| 亚洲欧美日韩综合国产aⅴ| 亚洲午夜精品久久| 狠狠色狠狠色综合日日tαg| 91在线视频在线| thepron国产精品| hitomi一区二区三区精品| 成人激情动漫在线观看| 国产成人av影院| 国产成人丝袜美腿| 风间由美一区二区三区在线观看| 国产成人在线视频网址| 国产伦精品一区二区三区在线观看| 国产一本一道久久香蕉| 国产一二精品视频| 粉嫩一区二区三区性色av| 成人免费毛片app| 成人黄色在线看| 波波电影院一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 91在线一区二区三区| 欧美激情精品久久久六区热门| 欧美不卡在线| 激情久久五月| 国产精品嫩草99av在线|