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

2021-10-05 21:37:09 字數 1329 閱讀 6890

1. 通過重寫thread類,自定義乙個get_result()方法

"""重新定義帶返回值的執行緒類"""

from threading import thread

from time import sleep,time

class

mythread

(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

except exception:

return

none

defsum_

(a):

sleep(a)

return a*

8if __name__ ==

'__main__'

: time1 = time(

) result_list =

#不用多執行緒

for i in

range(1

,5):

t =sum_(i)

for i in result_list:

print

(i)print

('不用多執行緒耗時'

, time(

)- time1)

time2 = time(

)#多執行緒

thread_list =

for i in

range(1

,5):

t = mythread(func=sum_,args=

(i,)

) t.start(

)for i in thread_list:

t.join(

)# jion()方法等待執行緒完成

print

(i.get_result())

print

('多執行緒耗時'

,time(

)-time2)

2. 通過寫入公共變數的方法

pass

Python多執行緒獲取返回值

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

Python多執行緒獲取返回值

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

獲取Python多執行緒的返回值

用python多執行緒時,遇到需要獲取每個執行緒返回值的問題,經查資料學習總結如下 python中使用執行緒有兩種方式 用方法包裝執行緒和用類包裝執行緒 方法 一 用方法包裝執行緒 thread start new thread function args kwargs function 表示執行緒...