Python 多線(xiàn)程其他屬性以及繼承Thread類(lèi)詳解
一、線(xiàn)程常用屬性
1.threading.currentThread:返回當(dāng)前線(xiàn)程變量
2.threading.enumerate:返回一個(gè)包含正在運(yùn)行的線(xiàn)程的list,正在運(yùn)行的線(xiàn)程指的是線(xiàn)程啟動(dòng)后,結(jié)束前的狀態(tài)
3.threading.activeCount:返回正在運(yùn)行的線(xiàn)程數(shù)量,效果跟len(threading.enumer)一樣
4.thr.setName:給線(xiàn)程設(shè)置名字
5.thr.getName:得到線(xiàn)程的名字。
舉例:
mport _thread as thread import time def loop1(in1): print("Start loop 1 at:", time.ctime()) print("我是參數(shù)", in1) time.sleep(4) print("End loop 1 at:", time.ctime()) def loop2(in1, in2): print("Start loop 2 at:", time.ctime()) print("我是參數(shù)", in1, "和參數(shù) ", in2) time.sleep(4) print("End loop 2 at:", time.ctime()) import threading def main1(): print("Starting at:", time.ctime()) t1 = threading.Thread(target = loop1, args = ('', )) t1.setName("THR_1")# 給線(xiàn)程重命名 t1.start() t2 = threading.Thread(target = loop2, args = ('', '')) t2.setName("THR_2") t2.setDaemon(True)# 主線(xiàn)程運(yùn)行完了就完了, 不用等線(xiàn)程2 t2.start() time.sleep(3)# 三秒后兩個(gè)子線(xiàn)程仍然在運(yùn)行著, 因?yàn)樗麄兝锩嬗幸粋€(gè)四秒在停著 for thr in threading.enumerate(): #返回的是正在運(yùn)行的子線(xiàn)程的列表 print("正在運(yùn)行的子線(xiàn)程名為:{0}".format(thr.getName()))# 讀取了該線(xiàn)程的名字 print("正在運(yùn)行的子線(xiàn)程數(shù)量為:{0}".format(threading.activeCount()))# 打印出了線(xiàn)程的數(shù)量, 包括主線(xiàn)程和兩個(gè)子線(xiàn)程一共3個(gè)線(xiàn)程 t1.join()# 等線(xiàn)程1運(yùn)行完了再接著向下運(yùn)行 print("ALL done at :", time.ctime()) if __name__ == "__main__": main1()
二、直接繼承子類(lèi)threading.Thread
1.直接繼承Thread;重寫(xiě)run函數(shù)
2.例子:
class MyThread(threading.Thread): #定義一個(gè)Thread的子類(lèi) def __init__(self, args): #重寫(xiě)__init__函數(shù), 其中參數(shù)為self和新引入的參數(shù) super(MyThread, self).__init__()# 固定格式, 繼承父類(lèi)的__init__函數(shù) self.args = args def run(self): time.sleep(1) print("The args for this class is {0}".format(self.args)) for i in range(5): t = MyThread(i) t.start() t.join()
三、源碼
d24_3_other_multi_thread_attribute.py
https://github.com/ruigege66/Python_learning/blob/master/d24_3_other_multi_thread_attribute.py
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python多線(xiàn)程編程(三):threading.Thread類(lèi)的重要函數(shù)和方法
- Python中線(xiàn)程threading.Thread的使用詳解
- python中的多線(xiàn)程鎖lock=threading.Lock()使用方式
- Python?常用模塊threading和Thread模塊之線(xiàn)程池
- 詳解Python的多線(xiàn)程定時(shí)器threading.Timer
- Python中threading庫(kù)實(shí)現(xiàn)線(xiàn)程鎖與釋放鎖
- Python多線(xiàn)程編程之threading模塊詳解
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5線(xiàn)程類(lèi)QThread詳細(xì)使用方法
- 對(duì)python:threading.Thread類(lèi)的使用方法詳解
- Python線(xiàn)程threading(Thread類(lèi))
相關(guān)文章
Python3里的super()和__class__使用介紹
這篇文章主要介紹了Python3里的super()和__class__使用介紹,本文用實(shí)例講解了這兩個(gè)方法之間的關(guān)系,需要的朋友可以參考下2015-04-04python創(chuàng)建生成器以及訪問(wèn)的方法詳解
這篇文章主要介紹了python創(chuàng)建生成器以及訪問(wèn)的方法詳解,與列表一次性地將數(shù)據(jù)全都加載到內(nèi)存不同的是,生成器使用推斷加載數(shù)據(jù),每次只推斷出一個(gè)對(duì)象,在數(shù)據(jù)量比較大時(shí),可以節(jié)省內(nèi)存,需要的朋友可以參考下2023-11-11python中列表添加元素的幾種方式(+、append()、extend())
本文主要介紹了python中列表添加元素的幾種方式(+、append()、extend()),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08教你用一行Python代碼實(shí)現(xiàn)GUI圖形界面
這篇文章主要介紹了教你用一行Python代碼實(shí)現(xiàn)GUI圖形界面,通過(guò)使用PySimpleGUI的popup_get_folder()方法,一行代碼就能實(shí)現(xiàn)選擇文件夾的操作,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01matplotlib之pyplot模塊添加文本、注解(text和annotate)
matplotlib是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地行制圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之pyplot模塊添加文本、注解(text和annotate)的相關(guān)資料,需要的朋友可以參考下2022-05-05Python實(shí)現(xiàn)棧的方法詳解【基于數(shù)組和單鏈表兩種方法】
這篇文章主要介紹了Python實(shí)現(xiàn)棧的方法,結(jié)合實(shí)例形式詳細(xì)分析了Python基于數(shù)組和單鏈表兩種方法定義棧的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02python中ThreadPoolExecutor線(xiàn)程池和ProcessPoolExecutor進(jìn)程池
這篇文章主要介紹了python中ThreadPoolExecutor線(xiàn)程池和ProcessPoolExecutor進(jìn)程池,文章圍繞主題相關(guān)資料展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-06-06Pandas.DataFrame時(shí)間序列數(shù)據(jù)處理的實(shí)現(xiàn)
本文主要介紹了Pandas.DataFrame時(shí)間序列數(shù)據(jù)處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python使用opencv對(duì)圖像mask處理的方法
這篇文章主要介紹了python使用opencv對(duì)圖像mask處理的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07