python 獲取多執行緒的返回值

2022-05-07 06:45:09 字數 939 閱讀 8040

**自網路  併發爬蟲時用到

import

threading

class

mythread(threading.thread):

def__init__(self,func,args=()):

super(mythread,self).

__init__

() self.func =func

self.args =args

defrun(self):

self.result = self.func(*self.args)

defget_result(self):

try:

return self.result #

如果子執行緒不使用join方法,此處可能會報沒有self.result的錯誤

except

exception:

return

none

deffoo(a,b,c):

time.sleep(1)

return a*2,b*2,c*2st =time.time()

li =

for i in xrange(4):

t = mythread(foo,args=(i,i+1,i+2))

t.start()

for t in

li: t.join()

#一定要join,不然主線程比子執行緒跑的快,會拿不到結果

print

t.get_result()

et =time.time()

print et - st

執行結果:

(0, 2, 4)

(2, 4, 6)

(4, 6, 8)

(6, 8, 10)

1.00099992752

Python多執行緒獲取返回值

在使用多執行緒的時候難免想要獲取其操作完的返回值進行其他操作,下面的方法以作參考 一,首先重寫threading類,使其滿足呼叫特定的方法獲取其返回值 import threading class mythread threading.thread 重寫多執行緒,使其能夠返回值 def init s...

Python多執行緒獲取返回值

在使用多執行緒的時候難免想要獲取其操作完的返回值進行其他操作,下面的方法以作參考 一,首先重寫threading類,使其滿足呼叫特定的方法獲取其返回值 import threadingclass mythread threading.thread 重寫多執行緒,使其能夠返回值 def init se...

Python 獲取多執行緒獲取返回值

1.通過重寫thread類,自定義乙個get result 方法 重新定義帶返回值的執行緒類 from threading import thread from time import sleep,time class mythread thread def init self,func,args ...