位置: 编程技术 - 正文

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

  • 工业产值是含税价格吗
  • 银行日记账期初余额写在什么科目
  • 增值税是5%的是什么
  • 出差怎么订机票
  • 分公司转独立公司
  • 企业年金也需要缴纳吗
  • 房地产企业可以抵扣进项税额的范围
  • 价外收取的返还利润是什么意思
  • 物流企业差额征税
  • 固定资产清理不能有余额
  • 结转上年度的企业所得税会计分录?
  • 待处理财产损益借贷方向
  • 代扣代缴增值税是什么意思
  • 职工个人负担的医疗保险可以在计算个人所得税前扣除
  • 工程款发票备注栏必须填写吗
  • 不开票收入是怎么回事
  • 多缴的社保退还给员工是否还要算个税
  • 受赠人个人所得税
  • 进项税额抵扣欠税后怎么申报
  • 购入苗木的会计分录
  • 已完成认证
  • 搬运费没有发票能入成本吗?
  • 个人将房产无偿赠与他人应交个人所得税吗
  • 进项税额加计扣除分录
  • configureandwatch
  • 暂估冲回账务处理
  • 汇算清缴补交的所得税会计分录
  • 鸿蒙系统开发者选项怎么关闭
  • 屏幕乱跳广告解决办法
  • 其它权益工具投资处置时其他综合收益转那
  • 个人所得税跨年度能退吗
  • 公司增资扩股需要考略公司资产吗
  • 电子税务局清算备案能撤销吗
  • 购买材料支出属于资本性支出吗
  • 投资收益怎么做不影响利润
  • phpforeach
  • 将预收款冲抵前欠货款会计分录
  • 专票认证后可以不抵扣吗
  • 网站伪静态有什么用
  • 确认的政府补助利得可以确认为收入吗
  • elementui动态表单数据回显
  • phpstorm wsl
  • python简单九宫格拼图游戏
  • 以非现金资产清偿债务的,债权人应当
  • 固定资产折旧如何进行会计处理
  • 个人所得税大病医疗夫妻双方怎么扣除
  • 帝国cms自动推送插件
  • 企业编制现金流量表的主要目的是什么
  • 固定资产报废处置的请示
  • PostgreSQL管理工具phpPgAdmin入门指南
  • macos添加用户
  • 政府补贴需要缴纳印花税吗
  • 非营利性养老院收费标准一般是多少
  • 备用金预期有什么影响
  • 办理房产证的时候可以加孩子的名字吗
  • 公司出资给另一个公司
  • 推广费计入哪个科目
  • sql如何随机抽样
  • xp系统内存不足怎么办
  • fedora gnome
  • 联想随笔
  • winxp怎么设置启动项
  • win7系统IE浏览器打开跳转到360浏览器,怎么阻止
  • win8任务栏假死
  • win8桌面图片位置
  • javascript Ext JS 状态默认存储时间
  • android:ViewPager与FragmentPagerAdapter
  • 简述opengl的编程步骤
  • javascript怎么学
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(8) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧
  • vue assign
  • vue路由跳转的钩子函数什么时候会用到
  • spring中aop实现
  • unix linux
  • js几种类型
  • java图像对比
  • 餐饮专票可以抵扣吗
  • 电子税务局第一次申请发票流程
  • 自然资源税税率
  • 新疆医保哪里查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设