**自網路 併發爬蟲時用到
importthreading
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,不然主線程比子執行緒跑的快,會拿不到結果
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 ...