位置: 编程技术 - 正文

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 多线程调用)

  • 小规模纳税人企业所得税怎么计算
  • 服务费的增值税怎么算
  • 银行借记和贷记的区别是什么
  • 异地缴纳税款
  • 100%直接控制的母子公司间划转股权或资产
  • 公司买大米怎么做账
  • 工程检测单位
  • 员工补充医疗保险报销范围
  • 期房购置税怎么算
  • 在建工程领用原材料的账务处理
  • 税收优惠有哪些类型
  • 我国流转税的税种组成为
  • 未收到增值税专用发票
  • 收到福利费会计分录
  • 未计提职工教育经费汇算清缴
  • 加工费发票怎么做账务处理
  • 企业所得税税前扣除异常
  • 对公账户提取备用金可以每天提现嘛
  • 季报是根据什么制定的
  • 电动车固定资产报废年限是多少年
  • 缴纳社保的账务处理办法
  • 文件校验有什么用
  • 新版edge浏览器极速模式
  • 银行承兑汇票贴现率是多少
  • php实现的中秋博饼游戏之绘制骰子图案功能示例
  • macOS Big Sur 11.2.1 正式版更新推送
  • 进程lsass.exe
  • 强化税收风险意识
  • php注释的主要作用是什么?
  • 涉税服务实务会花多少时间完成
  • 委托加工业务要交税吗
  • 详解 HttpServletResponse
  • 政府会计制度收入支出表
  • PHP 实现等比压缩图片尺寸和大小实例代码
  • 政府奖励需要缴纳增值税吗
  • 建筑保温材料出台了哪些限制政策
  • 员工出差的费用计入什么科目
  • 补交地税多少钱
  • 收到赔偿金怎么写收据?
  • 其他应收款如何平账
  • 小微企业城建税减免政策
  • 确定负债排列顺序的依据
  • 私车公用维修费用谁出
  • 工程施工和工程结算的账务处理
  • 库存现金的使用限额规定
  • 应收账款余额在借方还是贷方
  • 非广告性质的赞助支出调增还是调减
  • 记账凭证后面附什么原始凭证
  • 劳务报酬支出怎么算
  • 购买的固定资产退货怎么做账
  • 纸质银行承兑到期怎么办
  • 汇算清缴补交所得税的分录
  • 公司配股对股价的影响
  • 转让专利权的使用权
  • 承兑汇票怎么贴
  • 工程项目前期费用包括哪些
  • 企业接受供应单位提供劳务而发生的应付账款
  • 帮其他公司交水费税差
  • 客户退货,但不退货
  • 报废车收到的钱怎么做账
  • 投资性房地产收回自用
  • 个人银行帐户可以代理销户吗?
  • 被征用的不动产或者动产使用后应当怎样
  • mysqli修改表中数据
  • win2008远程桌面闪退
  • OS X 10.12.6 beta 1如何更新 OS X 10.12.6 beta 1如何升级
  • centos5.6
  • wfxswtch.exe - wfxswtch是什么进程
  • os x10.11el capitan beta3下载地址
  • 电脑开机后出现win7画面后一直黑屏
  • unity做小地图
  • 用简洁的语言推荐一本书
  • jQuery仿写百度百科的目录树
  • 充电显示调整差额是什么意思
  • shell脚本 -ne 0
  • 终端执行
  • javascript基础入门视频教程
  • 深入理解新发展理念,推进供给侧结构性改革
  • 长春市税务局电话号
  • 将购进农产品用于生产销售或委托加工货物的税率多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设