当前位置: 首页 > 图灵资讯 > 行业资讯> 如何使用Python获取多线程返回值?

如何使用Python获取多线程返回值?

来源:图灵python
时间: 2025-12-01 20:57:25

图片2.png

在此期间,小编在工作中使用最多的是多线程,在此过程中,不可避免地需要获得多线程操作后的返回值进行其他操作。经过一些咨询和操作,小编发现你可以在threading、在Thread的基础上进行封装以获得返回值,小编总结了这两种方法,快来看看。

第一:在threading中使用全球变量

在threading中,没有办法实现返回值,因此我们可以利用全局变量实现返回值的获取。

fromthreadingimportThread

_sum=0


defcal_sum(begin,end):
#声明使用全局变量
global_sum
foriinrange(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()

fromthreadingimportThread


#_sum=0


defcal_sum(begin,end):
#global_sum
_sum=0
foriinrange(begin,end+1):
_sum+=i
return_sum

"""重新定义带回值的线程类"""


classMyThread(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:
returnself.result
exceptException:
returnNone


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学习推荐:https://www.py.cn/