位置: 编程技术 - 正文

python使用threading获取线程函数返回值的实现方法(python的threading)

编辑:rootadmin

推荐整理分享python使用threading获取线程函数返回值的实现方法(python的threading),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中threading,python中thread,python threading,python thread condition,python thread condition,PYTHON使用缩进来体现代码之间的逻辑关系,python中的threading.thread,PYTHON使用缩进来体现代码之间的逻辑关系,内容如对您有帮助,希望把文章链接给更多的朋友!

threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断。

threading模块提供的类:

  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。

threading 模块提供的常用方法:

  threading.currentThread(): 返回当前的线程变量。

  threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。

  threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

threading 模块提供的常量:

  threading.TIMEOUT_MAX 设置threading全局超时时间。

python使用threading获取线程函数返回值的实现方法(python的threading)

好了,正文开始:

最近需要用python写一个环境搭建工具,多线程并行对环境各个部分执行一些操作,并最终知道这些并行执行的操作是否都执行成功了,也就是判断这些操作函数的返回值是否为0。但是threading并没有显式的提供获取各个线程函数返回值的方法,只好自己动手,下面就介绍一下自己的实现方式。

一开始考虑到执行的操作可能有很多,而且后续会不断补充,因此先写了一个通用的多线程执行类,封装线程操作的基本方法,如下:

MyThread类会接受一个func_list参数,每个元素是一个dict,有func和args两个key,func是真正要执行的函数引用,args是函数的参数。其中最主要的方法是start方法,会多线程执行每个func,然后一直等到所有线程都执行结束后退出。接下来的关键就是如何对self.ret_flag设置正确的值,以判断所有的线程函数是否都返回0了。

我的实现是,在MyThread class中写一个方法trace_func,作为直接的线程函数,这个trace_func中执行真正需要执行的函数,从而可以获取到该函数的返回值,设置给self.ret_flag。

这个trace_func的第一参数是要执行的func引用,后面是这个func的参数,具体代码如下:

这样就需要修改start方法中Thread函数的设置,代码如下:

这样能够成功获得返回值了,实验:

最后的输出结果

总结

以上所述是小编给大家介绍的python使用threading获取线程函数返回值的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

python获取多线程及子线程的返回值 最近有个需求,用多线程比较合适,但是我需要每个线程的返回值,这就需要我在threading.Thread的基础上进行封装importthreadingclassMyThread(threading.Thread):def__

python下个简单实例代码 注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!!!1.题目:有1、2、3、4个数字

python简单实例训练(~) 注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!!.题目:将一个正整数分解质

标签: python的threading

本文链接地址:https://www.jiuchutong.com/biancheng/372261.html 转载请保留说明!

上一篇:Python set常用操作函数集锦(python里的set)

下一篇:python获取多线程及子线程的返回值(python 多线程调用)

  • 个人去税务局开专票需要提供什么
  • 实收资本增加如何计算
  • 应交增值税已交税金是什么意思
  • 个人所得税如何查询工资
  • 房地产印章图片
  • 城建税和教育费附加怎么写分录
  • 公帐一个月能提多少现金出来
  • 资产负债表上预付账款和预收账款区别
  • 转让生产指标的企业所得税
  • 收购别人的公司要具备什么条件
  • 生产企业出口货物会计分录
  • 预付了订金收到发票怎么做分录?
  • 企业所得税营业税金及附加
  • 工程款开票备注栏
  • 员工因公负伤期间公司怎么开工资
  • 汇算清缴调增的利润要进未分配吗
  • 来料加工贸易是什么工作
  • 每月结转本年利润会计分录
  • 小规模纳税人代理销售税率是多少
  • 腾讯电脑管家中如何安装 文件夹上锁专家
  • 现金流量表与资产负债表不符
  • 公司招的兼职员工怎么报个税
  • windows 11预览版
  • macOS Big Sur 11.3新功能 为M1 Mac带来了iOS应用的手柄模拟功能
  • 固定资产清理损失可以税前扣除吗
  • 有限公司股权转让怎么办理流程
  • symfony框架经验总结
  • 没进项可以开专票吗
  • php编辑器哪个好
  • 销售黄金的消费税
  • nn.lstm输出
  • openai发布企业版
  • 业务招待费能计入成本吗
  • 售后租回交易形式是什么
  • 营业外收支的账户是什么
  • 以摊余成本计量的金融资产会计处理
  • 劳务报酬根据什么确定
  • 取得增值税
  • 查看php
  • mysql零基础入门教程完整
  • MySQL中使用什么语句来更新表中的记录
  • 关于录制初三毕业班家长寄语通知
  • 职工福利费允许抵扣吗
  • 增值税一般纳税人登记管理办法
  • 城市维护建设税,教育费附加,地方教育费附加
  • 库存商品可以领用加工吗
  • 职工意外伤害险赔偿标准
  • 食堂采购原材料怎么在赣溯源备案
  • 住宿发票丢失
  • 去年多计提的所得税怎么处理
  • etc的充值发票可以报账吗
  • 收到增值税专用发票是进项还是销项
  • 公司向个人借款合法吗
  • 未分配利润的
  • 合并两公司的帐务处理
  • 财务软件服务费合同印花税
  • 企业会计制度怎么写
  • 物流公司会计工作内容
  • ubuntu ftp服务开启
  • RSync文件备份同步 Linux服务器rsync同步配置图文教程
  • centos7挂载cdrom
  • spoolsv.exe是什么文件
  • ubuntu添加环境变量后黑屏
  • mac电脑上的通讯录怎么同步到手机上
  • spoolsrv32.exe - spoolsrv32进程是什么文件 有何作用
  • [个人学习笔记]Android 从网络获取json并解析 --Demo
  • 批处理 ftp
  • 什么叫真游戏
  • js原生实现call
  • 安卓广播的作用
  • linux中的ls命令的功能是变换工作目录到目标指定目录
  • dos下重命名
  • jquery.validate 自定义验证方法及validate相关参数
  • 如何使用wordpress
  • jquery插件使用
  • 上海地区附加税税率
  • 查询完毕
  • 一般纳税人的进项票必须当月认证吗?
  • 地税跟国税是在一起吗
  • 水利工程税金的计算公式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设