python中threading超線程用法實(shí)例分析
本文實(shí)例講述了python中threading超線程用法。分享給大家供大家參考。具體分析如下:
threading基于Java的線程模型設(shè)計(jì)。鎖(Lock)和條件變量(Condition)在Java中是對(duì)象的基本行為(每一個(gè)對(duì)象都自帶了鎖和條件變量),而在Python中則是獨(dú)立的對(duì)象。Python Thread提供了Java Thread的行為的子集;沒(méi)有優(yōu)先級(jí)、線程組,線程也不能被停止、暫停、恢復(fù)、中斷。Java Thread中的部分被Python實(shí)現(xiàn)了的靜態(tài)方法在threading中以模塊方法的形式提供。
threading 模塊提供的常用方法:
threading.currentThread(): 返回當(dāng)前的線程變量。
threading.enumerate(): 返回一個(gè)包含正在運(yùn)行的線程的list。正在運(yùn)行指線程啟動(dòng)后、結(jié)束前,不包括啟動(dòng)前和終止后的線程。
threading.activeCount(): 返回正在運(yùn)行的線程數(shù)量,與len(threading.enumerate())有相同的結(jié)果。
threading模塊提供的類:
Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local.
Thread是線程類,與Java類似,有兩種使用方法,直接傳入要運(yùn)行的方法或從Thread繼承并覆蓋run():
# encoding: UTF-8 import threading # 方法1:將要執(zhí)行的方法作為參數(shù)傳給Thread的構(gòu)造方法 def func(): print 'func() passed to Thread' t = threading.Thread(target=func) t.start() # 方法2:從Thread繼承,并重寫(xiě)run() class MyThread(threading.Thread): def run(self): print 'MyThread extended from Thread' t = MyThread() t.start()
構(gòu)造方法:
Thread(group=None, target=None, name=None, args=(), kwargs={})
group: 線程組,目前還沒(méi)有實(shí)現(xiàn),庫(kù)引用中提示必須是None;
target: 要執(zhí)行的方法;
name: 線程名;
args/kwargs: 要傳入方法的參數(shù)。
實(shí)例方法:
isAlive(): 返回線程是否在運(yùn)行。正在運(yùn)行指啟動(dòng)后、終止前。
get/setName(name): 獲取/設(shè)置線程名。
is/setDaemon(bool): 獲取/設(shè)置是否守護(hù)線程。初始值從創(chuàng)建該線程的線程繼承。當(dāng)沒(méi)有非守護(hù)線程仍在運(yùn)行時(shí),程序?qū)⒔K止。
start(): 啟動(dòng)線程。
join([timeout]): 阻塞當(dāng)前上下文環(huán)境的線程,直到調(diào)用此方法的線程終止或到達(dá)指定的timeout(可選參數(shù))。
一個(gè)使用join()的例子:
# encoding: UTF-8 import threading import time def context(tJoin): print 'in threadContext.' tJoin.start() # 將阻塞tContext直到threadJoin終止。 tJoin.join() # tJoin終止后繼續(xù)執(zhí)行。 print 'out threadContext.' def join(): print 'in threadJoin.' time.sleep(1) print 'out threadJoin.' tJoin = threading.Thread(target=join) tContext = threading.Thread(target=context, args=(tJoin,)) tContext.start()
運(yùn)行結(jié)果:
in threadContext.
in threadJoin.
out threadJoin.
out threadContext.
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- 對(duì)python多線程中互斥鎖Threading.Lock的簡(jiǎn)單應(yīng)用詳解
- Python多線程threading和multiprocessing模塊實(shí)例解析
- Python基于ThreadingTCPServer創(chuàng)建多線程代理的方法示例
- Python中Threading用法詳解
- python使用threading獲取線程函數(shù)返回值的實(shí)現(xiàn)方法
- Python 多線程Threading初學(xué)教程
- Python用threading實(shí)現(xiàn)多線程詳解
- 在Python中通過(guò)threading模塊定義和調(diào)用線程的方法
- Python中線程編程之threading模塊的使用詳解
- 舉例詳解Python中threading模塊的幾個(gè)常用方法
- Python中threading模塊join函數(shù)用法實(shí)例分析
- python threading模塊操作多線程介紹
- Python THREADING模塊中的JOIN()方法深入理解
- python多線程threading.Lock鎖用法實(shí)例
- python基于queue和threading實(shí)現(xiàn)多線程下載實(shí)例
- 對(duì)python:threading.Thread類的使用方法詳解
相關(guān)文章
詳解Python執(zhí)行py文件是否需要可執(zhí)行權(quán)限
這篇文章主要通過(guò)幾個(gè)案例為大家詳細(xì)介紹一下在Python中執(zhí)行py文件是否需要可執(zhí)行權(quán)限,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以了解一下2023-03-03Python 由字符串函數(shù)名得到對(duì)應(yīng)的函數(shù)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Python 由字符串函數(shù)名得到對(duì)應(yīng)的函數(shù)(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08詳解Python設(shè)計(jì)模式編程中觀察者模式與策略模式的運(yùn)用
這篇文章主要介紹了Python設(shè)計(jì)模式編程中觀察者模式與策略模式的運(yùn)用,觀察者模式和策略模式都可以歸類為結(jié)構(gòu)型的設(shè)計(jì)模式,需要的朋友可以參考下2016-03-03詳解Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對(duì)比
這篇文章主要介紹了Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06關(guān)于Python文本生成的Beam?Search解碼問(wèn)題
這篇文章主要介紹了Python文本生成的Beam?Search解碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07關(guān)于Python錯(cuò)誤重試方法總結(jié)
在本篇文章里小編給網(wǎng)友們分享一篇關(guān)于關(guān)于Python錯(cuò)誤重試方法總結(jié)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。2021-01-01