python继承threading.Thread实现有返回值的子类实例

 更新时间:2020年05月02日 10:04:27   作者:我不喜欢这个世界  
这篇文章主要介绍了python继承threading.Thread实现有返回值的子类实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

继承与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 sklearn 中的 make_blobs() 函数示例详解

    Python sklearn 中的 make_blobs() 函数示例详解

    make_blobs() 是 sklearn.datasets中的一个函数,这篇文章主要介绍了Python sklearn 中的 make_blobs() 函数,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Python Mysql数据库操作 Perl操作Mysql数据库

    Python Mysql数据库操作 Perl操作Mysql数据库

    python对mysql数据库的一些操作实现代码
    2009-01-01
  • python中pdb模块实例用法

    python中pdb模块实例用法

    在本篇文章里小编给大家整理的是一篇关于python中pdb模块实例用法的相关内容,有兴趣点朋友们可以学习下。
    2021-01-01
  • python 性能提升的几种方法

    python 性能提升的几种方法

    本篇文章主要介绍python 性能提升的几种方法,并附有代码参考示例,有需要的小伙伴可以参考下
    2016-07-07
  • Python中的命名元组简单而强大的数据结构示例详解

    Python中的命名元组简单而强大的数据结构示例详解

    namedtuple是Python中一个非常有用的数据结构,它提供了一种简单的方式创建具有固定字段的轻量级对象,通过使用namedtuple,可以提高代码的可读性和可维护性,避免了使用类定义对象的复杂性,这篇文章主要介绍了Python中的命名元组简单而强大的数据结构,需要的朋友可以参考下
    2024-05-05
  • python简单读取大文件的方法

    python简单读取大文件的方法

    这篇文章主要介绍了python简单读取大文件的方法,通过非常简单的方式实现对GB级别大文件的读取功能,并给出了外文参考站点stackoverflow的参考地址,需要的朋友可以参考下
    2016-07-07
  • Python内置函数的用法实例教程

    Python内置函数的用法实例教程

    这篇文章主要介绍了Python内置函数的用法,包括求绝对值的abs()函数及数值类型转换函数等,需要的朋友可以参考下
    2014-09-09
  • python3.6+django2.0+mysql搭建网站过程详解

    python3.6+django2.0+mysql搭建网站过程详解

    这篇文章主要介绍了python3.6+django2.0+mysql搭建网站过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python pandas 的索引方式 data.loc[],data[][]示例详解

    Python pandas 的索引方式 data.loc[],data[][]示例详解

    这篇文章主要介绍了Python pandas 的索引方式 data.loc[], data[][]的相关资料,其中data.loc[index,column]使用.loc[ ]第一个参数是行索引,第二个参数是列索引,本文结合实例代码讲解的非常详细,需要的朋友可以参考下
    2023-02-02
  • 详解Windows下源码编译PaddlePaddle

    详解Windows下源码编译PaddlePaddle

    这篇文章主要为大家介绍了Windows下从源码编译PaddlePaddle解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论