多线程
线程是程序执行的最小单位,实际上进程只负责分配资源,而利用这些资源执行程序的是线程,也就是说进程是线程的容器,一个进程中最少有一个线程来负责执行程序,它可以与同属一个进程的其它线程共享进程所拥有的全部资源
为什么要选择线程,而不选择进程
进程:就像同时和两个人聊QQ,就需要打开两个QQ软件,会占用没必要的资源
线程:就像同时和两个人聊QQ,只需要打开两个窗口就可以了,也会节省很多资源
线程的创建步骤
1.导入所需要的线程模块
import threading
2.通过线程类创建线程对象
线程对象 = threading.Thread(target=任务名)
3.启动线程
线程对象.start()
多线程的使用
import threading
import time
def eat():
for i in range(5):
print('正字吃饭=============')
time.sleep(0.5) # 等待0.5秒后再执行
def music():
for i in range(5):
print('正在唱歌=============')
time.sleep(0.5) # 等待0.5秒后再执行
if __name__ == '__main__':
eat_thread = threading.Thread(target=eat,)
music_thread = threading.Thread(target=music,)
eat_thread.start()
music_thread.start()
执行结果
线程执行任务函数的传参
- 元组方式传参:元组方式传参一定要和参数的顺序保持一致
- 字典方式传参:字典方式传参字典中的key一定要和参数名保持一致
import threading
import time
def eat(num, name):
for i in range(num):
print(f'{name}正字吃饭=============')
time.sleep(0.5) # 等待0.5秒后再执行
def music(num, name):
for i in range(num):
print(f'{name}正在唱歌======