掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
python中使用多線程處理程序,會比一步步的處理節(jié)約很多時(shí)間,而且通過創(chuàng)建并繼承Python的Thread類,重寫run()方法,通過自定義的線程類來創(chuàng)建線程,本文介紹python多線程Thread類定義和如何自定義線程類的過程。

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

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流