python多线程之线程传参
1 ''' 2 问题:需要传参怎么办? 3 例如,希望给每个线程打印的时候休眠时间不一样,打印次数不一样 4 例如,给每个线程指定一个名称,或者id 5 1、重写构造方法,把传入的参数作为成员变量 6 2、别忘了调用父类的构造方法 7 ''' 8 9 # encoding: utf-8 10 11 import threading 12 import time 13 14 class MyThread(threading.Thread): 15 # 重写的__init__会覆盖父类的__init__,需要在创建子类之前调用父类的构造方法来创建一个父类对象,在父类对象的基础上再追加一 16 # 些属性。比如这里的self.step = step 17 # 调用父类的构造方法 18 def __init__(self, step, times): 19 threading.Thread.__init__(self) 20 self.step = step # 成员变量,可以在不同的类方法之间使用 21 self.times = times 22 23 def run(self): # run方法前面的圈圈可以看出是复写了线程原本的run方法 24 for i in range(self.times): 25 print(self.name) # 线程的名称可以直接写self.name(父类的构造方法中定义好的成员变量),调用主线程的时候会有线程名称 26 time.sleep(self.step) 27 28 print('主线程开始啦!') 29 th1 = MyThread(step=0.3, times=8) 30 th2 = MyThread(0.6, times=6) 31 th3 = MyThread(0.2, times=1) 32 33 th1.start() 34 th2.start() 35 th3.start() 36 37 th1.join() 38 th2.join() 39 th3.join() 40 print("主线程结束啦!")