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的文件类型
May 30 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
flask入门之表单的实现
Jul 18 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python机器学习之KNN分类算法
Aug 29 Python
使用TensorFlow实现SVM
Sep 06 Python
pymysql 开启调试模式的实现
Sep 24 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
简述python Scrapy框架
Aug 17 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
留言板翻页的实现详解
2006/10/09 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
js继承实现方法详解
2016/12/16 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
深入解析Python中的集合类型操作符
2015/08/19 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python多线程原理与用法详解
2018/08/20 Python
详解python 爬取12306验证码
2019/05/10 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
什么是设计模式
2012/06/17 面试题
竞选文艺委员演讲稿
2014/04/28 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
单位实习介绍信
2015/05/05 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
2016年少先队活动总结
2016/04/06 职场文书
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL