如何使用Python获取多线程返回值?
发布时间:2025-12-01 20:57:25

在此期间,小编在工作中使用最多的是多线程,在此过程中,不可避免地需要获得多线程操作后的返回值进行其他操作。经过一些咨询和操作,小编发现你可以在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/
