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 23 Python
python实现简易内存监控
Jun 21 Python
Sanic框架配置操作分析
Jul 17 Python
Django开发的简易留言板案例详解
Dec 04 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
Django框架验证码用法实例分析
May 10 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 Python
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 Python
Python读取和写入Excel数据
Apr 20 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 access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
js实现微信分享代码
2020/10/11 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
react中使用swiper的具体方法
2018/05/15 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
js实现select下拉框选择
2020/01/11 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
基于Python测试程序是否有错误
2020/05/16 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
工商企业管理应届生求职信
2013/11/03 职场文书
酒店副总岗位职责
2013/12/24 职场文书
二年级数学教学反思
2014/01/21 职场文书
银行简历自我评价
2014/02/11 职场文书
新年爱情寄语
2014/04/08 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
七年级思品教学反思
2016/02/20 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python