Python多线程(重写Thread使其可以带返回值)
threading.Thread多线程,默认是没有返回值的
如果需要返回每个线程的返回值,就需要重写函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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 if __name__ = = '__main__' : def foo(a,b,c): time.sleep( 1 ) return a * 2 ,b * 2 ,c * 2 st = time.time() li = [] #线程组 for i in range ( 4 ): t = MyThread(foo,args = (i,i + 1 ,i + 2 )) li.append(t) t.start() for t in li: t.join() print (t.get_result()) et = time.time() print (et - st) |
标签:
Python进阶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具