python 自定义多线程类获取函数的返回值

832 阅读1分钟
[Python]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import threading
class ResThread(threading.Thread):
'''重写线程类'''
def __init__(self, func, *args, **kwargs):
super().__init__() # 调用父类初始化方法
self.func = func
self.args = args
self.kwargs = kwargs
self.result = None
def run(self):
'''重写run方法, 用变量接收函数返回值'''
self.result = self.func(*self.args, **self.kwargs)
def getResult(self):
'''增加获取结果函数, 待程序执行完毕之后才可获取'''
if self.result:
return self.result
else:
raise Exception("The current thread is not executed")
def fn():
return "我是返回值!"
t1 = ResThread(fn) # 创建自定义线程对象
t1.start() # 启动线程任务
t1.join() # 等待线程执行完毕
print(t1.getResult()) # 获取并打印返回值


实现之前觉着可能还蛮复杂的, 实现之后也不过如此, 望能帮到诸位.

end~

更多java学习资料可关注:itheimaGZ获取