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实现在线程里运行scrapy的方法
Apr 07 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
python爬虫基本知识
Mar 05 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
Python中的heapq模块源码详析
Jan 08 Python
用pycharm开发django项目示例代码
Jun 13 Python
python返回数组的索引实例
Nov 28 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
python如何用matplotlib创建三维图表
Jan 26 Python
Python绘制散点图之可视化神器pyecharts
Jul 07 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
AngularJS语法详解
2015/01/23 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
javascript简易画板开发
2020/04/12 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
python对html代码进行escape编码的方法
2015/05/04 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
python 删除非空文件夹的实例
2018/04/26 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
建筑个人求职信范文
2014/01/25 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
南京大屠杀观后感
2015/06/02 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript