歡迎您光臨本站 註冊首頁

python繼承threading.Thread實現有返回值的子類實例

←手機掃碼閱讀     retouched @ 2020-05-03 , reply:0

這篇文章主要介紹了python繼承threading.Thread實現有返回值的子類實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
繼承與threading.Thread實現有返回值的子類MyThread,廢話不多說,大家直接看代碼
import threading class MyThread(threading.Thread): 

def __init__(self,func,args=()): 

super(MyThread,self).__init__() self.func = func self.args = args def run(self): self.res = self.func(*self.args) 

def getResult(self): try: 

return self.res except Exception:

 return None
補充知識:python3多線程自定義threading子類
解決問題
1、python3多線程自定義threading.Thread的子類;
2、多線程並行,獲取多線程運行結果
代碼實例
import threading from time import sleep 

exitFlag = True def pp1(*args): i = 1 while(exitFlag): 

print(' '+' '*20,end='') 

print(' 線程1運行中'+'.'*(i%7),end='') sleep(0.5) i = (i>=6 and 1 or i+1) 

#if i>=6則i=1,否則i=i+1 print('線程1結束') 

def pp2(x,y): sleep(3) print('
線程2結束')

 return x + y 

class MyThread(threading.Thread): #MyThread類繼承threading.Thread類 def __init__(self,func,args1=None,args2=None):

 threading.Thread.__init__(self) self.func = func self.args1 = args1 

self.args2 = args2 def run(self): 

#t.start()語句調用run方法

 self.result = self.func(self.args1,self.args2) 

def getResult(self): 

#getResult方法可獲得func函數return的結果 

threading.Thread.join(self) 

return self.result t1 = MyThread(pp1) #初始化t1 t2 = MyThread(pp2,2,3) 

#初始化t1 t1.start() #啟動線程t1 t2.start() #啟動線程t2 t2.join() #判斷線程t2運行結束 exitFlag = False #線程2運行結束後,線程1才能結束 t1.join() #判斷線程t1運行結束,線程t1結束後,主線程才能往下運行 print('線程2返回結果: ',t2.getResult()) print('主線程結束')


[retouched ] python繼承threading.Thread實現有返回值的子類實例已經有732次圍觀

http://coctec.com/docs/python/shhow-post-232588.html