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中的fileinput模块的简单实用示例
Jul 09 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
python单例设计模式实现解析
Jan 07 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
Python collections模块的使用方法
Oct 09 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 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桌面中心(二) 数据库写入
2007/03/11 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
防止文件缓存的js代码
2013/01/10 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python实现的Kmeans++算法实例
2014/04/26 Python
python对json的相关操作实例详解
2017/01/04 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python pytest进阶之fixture详解
2019/06/27 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
读书心得体会
2013/12/28 职场文书
培训讲师邀请函
2014/01/10 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
离职告别感言
2015/08/04 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python