位置: 编程技术 - 正文

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

  • 小微企业减半征收印花税代码
  • 取得的高速公路发票可以抵扣吗
  • 门诊医保报销发票
  • 预计净残值影响减值准备吗
  • 固定资产清理哪方登记增加
  • 企业会计准则季报报送哪几个报表
  • 支票结算的账务处理
  • 进出口公司如何避税
  • 先抵扣后付款怎么做账
  • 年底员工借款如何处理
  • 电子税务局一般纳税人申请流程
  • 营改增后印花税计税依据文件
  • 预付油卡怎么入账
  • 计提个人负担的社会保险费分录
  • 地铁充值发票会透露个人账户信息吗
  • 进口货物有进项税吗
  • 专利技术使用权转让属于特许权使用费
  • 房地产增值税如何抵扣
  • 员工报销款应该挂什么科目
  • adb命令linux命令的区别
  • 事业单位预付款会计分录
  • PHP:ftp_delete()的用法_FTP函数
  • 发票红冲是什么意思需要给钱吗
  • 不需要认证的进项税额怎么处理
  • 为实习生支付人身意外伤害保险如何进行账务处理?
  • 职称评审费计入什么科目
  • 计提利息会计分录怎么做
  • 商业会计的做账流程
  • 已计提的存货跌价准备计入成本吗
  • php 取字符串 前几位
  • 投资收益影响营业利润和利润总额吗
  • 小规模负数发票怎么申报增值税
  • 身份证号码的正确读法
  • websocket怎么读
  • 装系统如何不安装自带软件
  • system view命令
  • 发放股票股利的账务处理
  • access中宏的操作
  • 非独立核算与独立核算
  • 预付账款大幅增加说明
  • 增值税专用发票的税率是多少啊
  • 差旅费税前扣除政策
  • 初次购买金税盘怎么做账
  • 广告设计要交文化事业建设
  • 加盟费收入如何入账
  • 冲去年管理费用
  • 增资减资改变股东要交税吗
  • 运输费和货款一样吗
  • 机械租赁公司挂牌流程
  • 利润表的所得税和所得税申报表所得税
  • 铁路运输印花税按什么比例交
  • 用白纸写的收据怎么入帐?
  • 公司国庆节给员工慰问品
  • 税收罚款支出计算公式
  • 购车预付款交了可以退吗
  • 一般纳税人增值税优惠政策2023
  • 如何获取数据库的sid
  • mysql sql 基础教程
  • win8旗舰版升级win10
  • Windows Server 2008作为打印服务器排错
  • mac怎么自己定制
  • LibreOffice 4.1.4 正式版下载
  • 无线网卡搜索不到无线网
  • winxp系统用户不见了
  • windows8用户名怎么改
  • win7声音方案下载
  • Android通过HttpURLConnection获取JSON并进行UI更新
  • js+html
  • jquery实现表单验证
  • jquery移动节点的方法
  • cocos onload
  • bash 删除文件夹
  • android mvp mvc
  • android 布局属性大全
  • python twinter
  • 南京税务局几点上班几点下班
  • 成都税务局发票查询
  • 低丰度油气田开采的原油
  • 盐城买家电到哪里买
  • 怎么在国税网上交社保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设