import threading
import time
class MyThread(threading.Thread):
def __init__(self,func,args=()):
super(MyThread,self).__init__()
self.func = func
self.args = args
def run(self):
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result # 如果子线程不使用join方法,此处可能会报没有self.result的错误
except Exception:
return None
def add(x, y):
return x+y
def main():
t_list = []
t_data = []
for i in range(3):
t = MyThread(add, (i,i))
t_list.append(t)
t.start()
for t in t_list:
t.join() # 一定要join,不然主线程比子线程跑的快,会拿不到结果
t_data.append(t.get_result())
print(t.get_result())
if __name__ == '__main__':
main()
多线程获取子线程任务返回值
Reads: 1324
Edit
Comments
Make a comment
www.ultrapower.com ,王硕的博客,专注于研究互联网产品和技术,提供中文精品教程。
本网站与其它任何公司及/或商标无任何形式关联或合作。