位置: 编程技术 - 正文

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%
  • 内账会计会承担法律责任吗
  • 不验旧可以领新车吗
  • 社保多交退款多久到账
  • 永续盘存制的含义
  • 企业实际发生的公益性捐赠支出
  • 公司一直没有做内账违法吗
  • 未及时转固
  • 计提固定资产减值准备属于什么支出
  • 购车合同起什么作用
  • 轮胎计入什么会计科目
  • 企业对外投资需要哪些审批
  • 出口退税进项税额转出的计算
  • 补提以前年度摊销
  • 不得免征和抵扣的税额
  • 公司哪些发票可以抵税
  • 制造企业享受增值税政策
  • 建设单位管理费费率
  • 外管证预缴增值税怎么抵扣
  • 工会经费的开支必须取得发票么
  • 苹果电脑初始化设置
  • 内账进项税不设置怎么账务处理
  • 工伤保险的作用有
  • 现金流量表的编制基础是权责发生制
  • macbookpro任务栏
  • PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
  • 特殊收入应扣减可加计扣除的研发费用政策依据
  • 应付票据开出票据的会计分录
  • 详谈的详是什么意思
  • php和mysql的联合使用
  • 我想看阿尔伯塔
  • 只有收据没有发票怎么报销
  • 桌山 开普敦
  • php数组分类
  • thinkphp3.0
  • asreg命令什么意思
  • 基于Java+SpringBoot+vue+elementui药品商城采购系统详细设计实现
  • php删除数据
  • php识别验证码的库高级
  • thinkphp 分页
  • 小规模建筑公司经营范围大全
  • 计提营业税金及附加比例
  • 税控盘开票日期一般截止到下个月几号
  • 不免征个人所得税的是个人转让著作权所得
  • 核定征收的收入
  • dedecms安装步骤
  • react context优化四重奏教程示例
  • mysql中的外键的定义
  • 公司购买法拍房需要交什么费
  • 发票可以去做原始凭证吗
  • mysql的日期时间函数
  • 固定资产计入管理费用就不用折旧了吗
  • 未确认融资费用借贷方向
  • 住宿发票遗失怎么办
  • 委托代理进出口
  • 不允许抵扣进项税额的是
  • 每月增值税怎么做账
  • 扣非净利润增长率
  • 冲销预付账款怎么填记账凭证
  • 以原材料投入资本
  • 分页式存储管理中页的大小是可以不相等的
  • mysql 绿色
  • 打开电脑windows
  • 硬盘磁盘保护
  • linux系统如何进入终端
  • 查看win8.1版本
  • Win7开机就蓝屏
  • python的dict类型
  • js解析url参数的方法
  • js 竖线
  • javascript 二维数组搜索
  • jquery调用controller
  • Android自定义系统服务框架
  • python对比go
  • 个人所得税如何办理退税
  • 杨柳青还迁房2024年还建不建
  • 南京江宁汽车过户手续及费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设