python继承threading.Thread实现有返回值的子类实例


Posted in Python onMay 02, 2020

继承与threading.Thread实现有返回值的子类MyThread,废话不多说,大家直接看代码

import threading
class MyThread(threading.Thread):
  def __init__(self,func,args=()):
    super(MyThread,self).__init__()
    self.func = func
    self.args = args
  def run(self):
    self.res = self.func(*self.args)
  def getResult(self):
    try:
      return self.res 
    except Exception:
      return None

补充知识:python3多线程自定义threading子类

解决问题

1、python3多线程自定义threading.Thread的子类;

2、多线程并行,获取多线程运行结果

代码实例

import threading
from time import sleep
exitFlag = True
def pp1(*args):
  i = 1
  while(exitFlag):
    print('\r'+' '*20,end='')
    print('\r线程1运行中'+'.'*(i%7),end='')
    sleep(0.5)
    i = (i>=6 and 1 or i+1)  #if i>=6则i=1,否则i=i+1
  print('线程1结束')

def pp2(x,y):
  sleep(3)
  print('\n线程2结束')
  return x + y

class MyThread(threading.Thread):  #MyThread类继承threading.Thread类
  def __init__(self,func,args1=None,args2=None):
    threading.Thread.__init__(self)
    self.func = func
    self.args1 = args1
    self.args2 = args2
  def run(self):     #t.start()语句调用run方法
    self.result = self.func(self.args1,self.args2)  
  def getResult(self):  #getResult方法可获得func函数return的结果
    threading.Thread.join(self)
    return self.result

t1 = MyThread(pp1)   #初始化t1
t2 = MyThread(pp2,2,3) #初始化t1
t1.start()  #启动线程t1
t2.start()  #启动线程t2
t2.join()   #判断线程t2运行结束
exitFlag = False  #线程2运行结束后,线程1才能结束
t1.join()  #判断线程t1运行结束,线程t1结束后,主线程才能往下运行
print('线程2返回结果: ',t2.getResult())
print('主线程结束')

以上这篇python继承threading.Thread实现有返回值的子类实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python open()文件处理使用介绍
Nov 30 Python
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
Sep 20 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 Python
Python3-异步进程回调函数(callback())介绍
May 02 #Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 #Python
判断Threading.start新线程是否执行完毕的实例
May 02 #Python
python中threading开启关闭线程操作
May 02 #Python
浅谈python3打包与拆包在函数的应用详解
May 02 #Python
构建高效的python requests长连接池详解
May 02 #Python
如何基于windows实现python定时爬虫
May 01 #Python
You might like
php数据库配置文件一般做法分享
2012/07/07 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
javascript一些不错的函数脚本代码
2008/09/10 Javascript
jquery的颜色选择插件实例代码
2008/10/02 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
js最简单的双向绑定实例讲解
2018/01/02 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
jQuery 移除事件的方法
2020/06/20 jQuery
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
客房主管岗位职责
2013/12/09 职场文书
《雪儿》教学反思
2014/04/17 职场文书
开工仪式策划方案
2014/05/23 职场文书
推广普通话标语
2014/06/27 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
创业计划书之便利店
2019/09/05 职场文书
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle