新聞中心
python中使用多線程處理程序,會比一步步的處理節(jié)約很多時間,而且通過創(chuàng)建并繼承Python的Thread類,重寫run()方法,通過自定義的線程類來創(chuàng)建線程,本文介紹python多線程Thread類定義和如何自定義線程類的過程。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計,仁化網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:仁化等地區(qū)。仁化做網(wǎng)站價格咨詢:18980820575
一、Thread類定義
threading.Thread(self, group=None, target=None, name=None,agrs=(),kwargs=None, *, daemon=None)
參數(shù)group是預(yù)留的,用于將來擴展;
參數(shù)target是一個可調(diào)用對象,在線程啟動后執(zhí)行;
參數(shù)name是線程的名字。默認值為“Thread-N“,N是一個數(shù)字;
參數(shù)args和kwargs分別表示調(diào)用target時的參數(shù)列表和關(guān)鍵字參數(shù)。
二、自定義線程類
1、創(chuàng)建一個類,并繼承Python的Thread類,且重寫run()方法實現(xiàn)具體的執(zhí)行順序由自己來定義。
from threading import Thread import time #創(chuàng)建一個類,并繼承Python的Thread類,且重寫run()方法實現(xiàn)具體的執(zhí)行順序由自己來定義 class MyThread(Thread): '''time.sleep代表等待10秒后才執(zhí)行''' def run( self ): time.sleep( 2 ) print ( "我是線程類..." ) '''下面這一段是從源碼Thread類中的run方法復(fù)制過來的,當(dāng)然 沒有也許,因為繼承了Thread,就會去父類里面找,我這里只是測試用''' try : if self ._target: self ._target( * self ._args, * * self ._kwargs) finally : # Avoid a refcycle if the thread is running a function with # an argument that has a member that points to the thread. del self ._target, self ._args, self ._kwargs
2、定義一個函數(shù)
def Bar(): print ( "Bar..." )
3、通過自定義的線程類來創(chuàng)建線程,并且關(guān)聯(lián)函數(shù)Bar,最后執(zhí)行這個線程。
t1 = MyThread(target = Bar) t1.start() print ( "守護線程執(zhí)行結(jié)束..." )
需要注意:
自定義線程不能指定target,因為,自定義線程里面的任務(wù)統(tǒng)一都在run方法里面;
啟動線程統(tǒng)一調(diào)用start方法,不要直接調(diào)用run方法,因為這樣不是使用子線程去執(zhí)行任務(wù)。
以上就是python多線程自定義線程類的有關(guān)介紹,希望能對你有所幫助哦~更多python學(xué)習(xí)推薦:python教程。
新聞名稱:創(chuàng)新互聯(lián)Python教程:python多線程如何自定義線程類?
文章源于:http://www.dlmjj.cn/article/dpddesg.html


咨詢
建站咨詢
