PYTHON——多线程:从Thread类继承

从Thread类继承

  通过继承Thread来实现多线程可以提高对线程任务的个性化定制,具体实现如下:

实例代码:

# 从Thread类继承
import threading
from time import sleep,ctime

# 线程类,从Thread类继承而来。
class MyThread(threading.Thread):
    # 重写父类的构造方法,其中,func是线程函数,args是传入线程函数的参数,name是线程名称
    def __init__(self,func,args,name=‘‘):
        # 使用super函数调用父类的构造方法,并传入相应的参数值。
        super().__init__(target = func,name=name,args=args)

    # 重写父类的run方法
    def run(self):
        self._target(*self._args)

# 线程函数
def fun(index,sec):
    print(‘开始执行{},时间:{}‘.format(index,ctime()))
    # 休眠sec秒
    sleep(sec)
    print(‘执行完毕{},时间:{}‘.format(index,ctime()))

def fun2(a,b,c):
    print(‘2开始执行,时间:{}‘.format(ctime()))
    # 休眠sec秒
    sleep(a+b+c)
    print(a+b+c)
    print(‘2执行完毕,时间:{}‘.format(ctime()))

def main():
    print(‘开始:‘,ctime())
    # 创建第一个线程,并制定线程名称为“线程1”
    thread1 = MyThread(fun,(10,4),‘线程1‘)
    thread2 = MyThread(fun2,(4,6,2),‘线程2‘)
    thread1.start()
    thread2.start()
    print(thread1.name)
    print(thread2.name)
    thread1.join()
    thread2.join()
    print(‘结束:‘,ctime())

if __name__ == ‘__main__‘:
    main()

原文地址:https://www.cnblogs.com/chenhaiming/p/9889989.html

时间: 2024-11-08 23:37:34

PYTHON——多线程:从Thread类继承的相关文章

PYTHON——多线程:Thread类与线程对象

Thread类与线程对象 Thread类构造方法的target关键字参数不仅可以是函数,还可以是一个对象,可以称这个对象为线程对象.其实,线程调用的仍然是函数,只是这个函数用对象进行了封装.这么做的好处是可以将线程函数相关的代码都放在这个对象对应的类中,更能体现面向对象的封装性. 线程对象对应的类需要有一个可以传入线程函数和参数的构造方法,而且在类中还必须有一个名为"__call__()"的方法.当线程启动时,会自动调用线程对象的"__call__()"方法,然后在

PYTHON——多线程:Thread类与线程函数

Thread类与线程函数 可以使用Thread对象的join方法等待线程执行完毕:主线程(main()函数)中调用Thread对象的join方法,并且Thread对象的线程函数没有执行完毕,主线程会处于阻塞状态.使用Thread类实现多线程的步骤:1.创建Thread类的实例:2.通过Thread类的构造方法的target关键字参数执行线程函数:通过args关键字参数指定传给线程函数的参数.3.调用Thread对象的start方法启动线程.下面例子功能:使用Thread对象启动2个线程,并在各自

python多线程模块thread使用范例的代码

下边内容是关于python多线程模块thread使用范例的内容,希望能对小伙伴们也有用处. #!/usr/bin/python import threadimport time # Define a function for the threaddef print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadNa

[python]多线程模块thread与threading

Python通过两个标准库(thread, threading)提供了对多线程的支持 thread模块 import time import thread def runner(arg): for i in range(6): print str(i)+':'+arg time.sleep(1) #结束当前线程 thread.exit_thread() #等同于thread.exit() #启动一个线程,第一个参数为函数名, #第二个参数为一个tuple类型,是传给函数的参数 thread.st

Java 多线程 (Thread 类)

1.多线程 1.多线程实现 两种方式可以实现多线程: 继承 Thread 类,重写 run 方法:定义对象,调用 start 方法 创建类实现 Runnable 接口,作为实参传递给 thread 的构造方法.定义对象,调用 start 方法. 1.1.继承 Thread 继承类,重写方法 class TDemo1 extends Thread { public String name; // 取个名字,便于识别 public TDemo1 (String name) { // 构造方法 thi

Java 多线程之 Thread 类 和 Runnable 接口初步使用

Thread 类 Thread 类是在 JDK1.0 时就存在的, 在 Java 中接触的多线程开发基本上都会从这个类开始. Thread之定义线程类 使用 Thread 创建线程的方法很简单, Thread 是一个类, 在需要创建线程时, 我们只需要继承这个类, 并将 run() 方法进行重写即可. class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = min

Java多线程01(Thread类、线程创建、线程池)

Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序. 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 1.1.2 单线程程序 - 从入口m

[Python 多线程] threading.local类 (六)

在使用threading.local()之前,先了解一下局部变量和全局变量. 局部变量: import threading import time def worker(): x = 0 for i in range(100): time.sleep(0.0001) x += 1 print(threading.current_thread(),x) for i in range(10): threading.Thread(target=worker).start() 运行结果: <Thread

Python全栈开发——类继承和组合

# 类组合将几个不相关的类组合在一起#什么时候用:当类之间有显著的不同,并且较小的类是较大的类所需组件时,用组合 class School: def __init__(self,name,addr): self.name=name self.addr=addr def zhao_sheng(self): print('%s is ' %self.name) class Course: def __init__(self,name,price,period,school): self.name=n