多线程的创建方式
一、使用函数方式创建多线程
1、创建方式
import threading import time def hi(num): print('hello %d' % num) time.sleep(3) if __name__ == "__main__": print('主线程开始') # 使用threading模块创建一个多线程,target表示目标函数,args是一个传递参数的元祖 t1 = threading.Thread(target=hi, args=(10,)) # 实例化一个Thread多线程类 # 启动一个线程 t1.start() t2 = threading.Thread(target=hi, args=(20,)) t2.start() print('主线程结束了')
二、使用类的方式创建多线程(创建业务复杂的线程的时候使用类继承的方式)
1、创建方式
import threading import time class MyThread(threading.Thread): def __init__(self, num): super().__init__() self.num = num def run(self): print('当前的数字: %d' % self.num) time.sleep(3) class MyThread1(threading.Thread): def run(self): time.sleep(5) if __name__ == "__main__": print('主线程开始') t1 = MyThread(1) t2 = MyThread(2) t1.start() t2.start() print('主线程结束')
2、关于类的继承方式创建多线程,必须实现
run
方法- 3、如果类中需要传递参数就要写
__init__
方法,需要使用super()
实现父类的__init__
方法
三、一般开发中创建多线程
上面方法是一个一个的创建一个一个的启动,如果开多个线程就直接使用
range()
函数
...
threading_list = []
for i in range(100):
t = threading.Thread(target=sub)
threading_list.append(t)
t.start()
# 表示等待全部线程执行完才进行下面的
for t in threading_list:
# 下一章节会介绍
t.join()
print('程序结束了')
....