位置: 编程技术 - 正文

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

  • 山东省增值税发票勾选认证平台
  • 税务行政复议是税务行政复议机关的裁决活动
  • 有形动产租赁服务税收分类编码
  • 单位人民币卡账户可以支取现金吗
  • 增值税期末余额在哪方
  • 冲红发票怎么写备注
  • 注册资本可以是0元吗
  • 一般纳税人购买并销售免税货物所发生的运输费用
  • 债务重组偿债顺序
  • 货运增值税发票抵扣条件
  • 支付外汇货款
  • 增值税负率怎么算
  • 货物赔偿是否需要发票
  • 库存商品内部划转怎么做账?
  • 预付款发票未到如何入成本
  • 母公司给子公司担保需要决议吗
  • 计提销项税的同类有哪些
  • 税收折旧率
  • 预付卡发票报销单怎么写
  • 集体企业属于事业单位吗
  • 原材料因管理不善被盗的会计分录
  • 按键盘不起作用怎么办
  • 会计制度备案成本核算方法一般选择哪个
  • macbook发热会烧坏吗
  • window11调节屏幕亮度
  • 购买方已认证的专票怎么红冲
  • 所得税汇算清缴时间期限
  • 公司开业需要怎么布置
  • intel me有什么用
  • 季度交企业所得税是按照什么来交的
  • 职工福利费会计账务处理
  • 单位收到的投标通知书
  • 购买商品房交税流程
  • 作废的发票对方钱能打出来吗
  • 来料加工 增值税
  • 销售多余的材料
  • bootstrap 栅格
  • 深度学习如何训练出好的模型
  • php对接公众号支付
  • php处理并发有哪些技术
  • urljoin使用
  • 生产型出口企业的概念
  • 社会团体费用报销制度
  • 个体工商户要做账报税吗
  • 财务会计报表的使用者有哪些
  • 破产清算应收账款怎么评估
  • 无形资产如何做账务处理
  • 食堂的帐怎么做
  • 收到赠送的样品附件
  • 未发生账务类交易
  • 发票为什么被列为金额
  • 对公付货款没有收到发票如何处理
  • 年终返利销售政策范本
  • 非盈利社会团体可以开发票吗
  • 自产商品无偿赠送是否确认收入
  • 银行汇票后面怎样背书盖章
  • 劳动关系从什么时候确立
  • 电子发票报销如何处理
  • 小企业建账选哪种会计制度
  • mysql经典书
  • win73d设置怎么设置
  • win7旗舰版激活期限已过
  • xp系统乱了,怎么恢复
  • 写出linux安装的详细步骤
  • ssh 使用代理
  • dosbox批处理
  • 项目部不足和改进
  • unity3d c语言
  • javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
  • 初始学历是什么意思
  • Web2.0下XHTML+CSS 设计需要注意的地方小结
  • angularjs常用总结
  • 如何修改新建的内容
  • 打破游戏规则
  • bootstrapping怎么做
  • java script入门
  • gradle 混淆
  • 合肥税务网几时成立的
  • shell ftp -n
  • 怎么注册山东省采购网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设