线程概述
线程介绍
在Python中,想要实现多任务可以使用线程来完成,线程是实现多任务的一种方式。还可以使用进程、协程实现多任务。
线程概念
进程是分配资源的基本单位, 一旦创建一个进程就会分配一定的资源,
线程是cpu调度的基本单位,每个进程至少都有一个线程,而这个线程就是我们通常说的主线程。
线程作用
多线程可以完成多任务
多线程效果图:
线程编程
Python默认单任务
接下来我们使用python代码来模拟“唱歌跳舞”这件事情
import timedef sing():"""唱歌函数"""for i in range(3):print("正在唱歌..")time.sleep(0.5)def dance():"""跳舞函数"""for i in range(3):print("正在跳舞..")time.sleep(0.5)if __name__ == '__main__':sing() # 正在唱歌dance() # 正在跳舞
运行结果如下:
:::warning
- 很显然刚刚的程序并没有完成唱歌和跳舞同时进行的要求 :::
多线程完成多任务
import threadingimport time# 唱歌任务def sing():# 扩展: 获取当前线程# print("sing当前执行的线程为:", threading.current_thread())for i in range(3):print("正在唱歌...%d" % i)time.sleep(1)# 跳舞任务def dance():# 扩展: 获取当前线程# print("dance当前执行的线程为:", threading.current_thread())for i in range(3):print("正在跳舞...%d" % i)time.sleep(1)if __name__ == '__main__':# 扩展: 获取当前线程# print("当前执行的线程为:", threading.current_thread())# 创建唱歌的线程# target: 线程执行的函数名sing_thread = threading.Thread(target=sing)# 创建跳舞的线程dance_thread = threading.Thread(target=dance)# 开启线程sing_thread.start()dance_thread.start()
执行结果:
正在唱歌...0正在跳舞...0正在唱歌...1正在跳舞...1正在唱歌...2正在跳舞...2
小结
- 导入线程模块
import threading - 创建子线程并指定执行的任务
sub_thread = threading.Thread(target=任务名) - 启动线程执行任务
sub_thread.start()
