多任务
多任务:同一时间段/同一时间执行多个任务
多任务执行的目的,为了提高效率
并行与并发
并行是指在同一时间同时执行多个任务,多个任务是一块执行的
并发是指在一段时间内执行多个,但是任务不是同时执行的,而是轮流执行的
同步与异步
同步是指,两个任务具有关联性,后者可能需要前者的结果,串行执行
异步而是指两个任务没有联系,可以同时执行,也可以一个一个执行(没有前后之分)描述并行或并发
进程与线程
进程是线程的仓库
一个进程可能包含多个线程
进程
一个正在运行的程序就是一个进程,进程是系统进行资源分配的最小单位
每一个进程都有自己的独立的内存和资源
程序只有一个,进程可以有多个
进程与进程之间相互独立,资源不能共享
线程
线程是进程中的一个执行线路或者流程
线程是任务调度的最小单位
线程可以看做是轻量级的进程
程序真正执行时,调用的是线程
一个进程中至少有一个主线程,可以包含多个子线程
线程与线程之间共享进程的资源和数据
多线程的实现
使用threading模块来创建线程
import threading
def sing(nmaes):
print(f"第一个线程{names}")
if __name__ == ' main ':
# 创建一个线程,args后面写要传的参数,必须是元组的形式
t1 = threading.Thread(target=sing, args=("老王",))
# 启动线程
t1.start()
类继承的方式创建进程
import threading
class MyThrea(threading.Thread):
def __init__(self, username):
super().__init__()
self.username = username
# run方法重写父类中的run方法
# 在实例化完后,进程开始会自动调用run方法
def run(self):
print(f"{self.username}唱了歌")
if __name__ == ' main ':
t1 = MyThrea('老王')
t2 = MyThrea('老李')
# 设置线程的名字
t1.setName("t1")
# 获取线程的名字
print(t1.getName())
# 启动进程
t1.start()