首页 > 技术文章 > 继承threading.Thread创建线程

monsterhy123 2020-04-11 22:07 原文

  • Python中,通过继承类threading.Thread的方式来创建一个线程。这种方法只要重threading.Thread中的方法run(),然后再调用方法start()就能创建线程,并运行方法run()中的代码。

  •  1 import threading
     2 import time
     3 def fun1(delay):
     4     print('线程{0}开始运行fun1'.format(threading.current_thread().getName()))
     5     time.sleep(delay)
     6     print('线程{0}运行fun1结束'.format(threading.current_thread().getName()))
     7 def fun2(delay):
     8     print('线程{0}开始运行fun2'.format(threading.current_thread().getName()))
     9     time.sleep(2)
    10     print('线程{0}运行fun2结束'.format(threading.current_thread().getName()))
    11 #创建线程类继承threading.Thread
    12 class MyThread(threading.Thread):
    13     #重写父类的构造方法,其中func是线程函数,args是传入线程的参数,name是线程名
    14     def __init__(self,func,name,args):
    15         super().__init__(target=func,name=name,args=args)
    16     #重写父类的run()方法
    17     def run(self):
    18         self._target(*self._args)
    19 
    20 if __name__=='__main__':
    21     print('开始运行')
    22     #创建线程
    23     t1 = MyThread(fun1,'thread-1',(2,))
    24     t2 = MyThread(fun2,'thread-2',(4,))
    25     t1.start()
    26     t2.start()
    27     t1.join()
    28     t2.join()
    1 开始运行
    2 线程thread-1开始运行fun1
    3 线程thread-2开始运行fun2
    4 线程thread-1运行fun1结束
    5 线程thread-2运行fun2结束

     

推荐阅读