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字典简介以及用法详解
Nov 15 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python中static相关知识小结
Jan 02 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
python中字符串内置函数的用法总结
Sep 13 Python
python实现事件驱动
Nov 21 Python
Python创建字典的八种方式
Feb 27 Python
python 堆和优先队列的使用详解
Mar 05 Python
python实现图片中文字分割效果
Jul 22 Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 Python
python opencv 实现对图像边缘扩充
Jan 19 Python
Python如何执行系统命令
Sep 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编程实现脚本异步执行的方法
2017/08/09 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
Django 前后台的数据传递的方法
2017/08/08 Python
python先序遍历二叉树问题
2017/11/10 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
Python函数基本使用原理详解
2020/03/19 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
制作部班长职位说明书
2014/02/26 职场文书
化工专业自荐书
2014/06/16 职场文书
幸福家庭标语
2014/06/27 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
2016年元旦主持词
2015/07/06 职场文书
2016七一建党节慰问信
2015/11/30 职场文书