导语:
本文主要介绍了关于如何使用Python获取多线程返回值?的相关知识,包括springboot多线程返回值,以及python多线程调用同一个函数这些编程知识,希望对大家有参考作用。
这段时间,小编在工作中使用的多线程最多,而在这个过程中,难免会为其他操作获取多线程操作的返回值。小编经过一番查看和操作,发现在threading和Thread的基础上进行封装可以得到返回值。小编总结了这两种方法,快来看看吧。
第一种:在threading中使用全球变量
在threading中,并没有实现返回值的方法,所以我们可以
利用全局变量来实现返回值的获取。
from threading import Thread
_sum = 0
def cal_sum(begin, end):
# 声明使用全局变量
global _sum
for i in range(begin, end + 1):
_sum += i
if __name__ == '__main__':
t1 = Thread(target=cal_sum, args=(1, 5))
t2 = Thread(target=cal_sum, args=(6, 10))
t1.start()
t2.start()
print(_sum)
第二种:重写Thread类,自定义一个get_result()
from threading import Thread
# _sum = 0
def cal_sum(begin, end):
# global _sum
_sum = 0
for i in range(begin, end + 1):
_sum += i
return _sum
"""重新定义带返回值的线程类"""
class MyThread(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
except Exception:
return None
if __name__ == '__main__':
t1 = MyThread(cal_sum, args=(1, 5))
t2 = MyThread(cal_sum, args=(6, 10))
t1.start()
t2.start()
t1.join()
t2.join()
res1 = t1.get_result()
res2 = t2.get_result()
print(res1 + res2)
以上就是小编总结的获取多线程返回值的方法,大家可以两种方法都尝试下,然后选择自己合适方便的方法去操作哦~
更多Python学习推荐:
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在 Python 中从 numpy 数组中添加和删除元素08/11
- ♥ python插入数据库乱码怎么解决?11/30
- ♥ 为什么 Python 必须在方法定义和调用中显式使用“self”?01/12
- ♥ 如何在python中输入单引号10/09
- ♥ python如何输出换行符11/15
- ♥ 何时使用 python11/07
内容反馈