学习回顾:
并发:在同一个时间段内多个任务同时进行
并行:在同一个时间点上多个任务同时进行
进程的三大基本状态:
就绪状态:所有进程需要的资源都获取到了,除了CPU
执行状态:获取到了所有资源,包括CPU,进程处于运行状态
阻塞状态:进程停滞不再运行,放弃了CPU,进程此时处于内存里
什么叫进程:
正在运行的程序。
由代码段,数据段,PCD(进程控制块)
进程是资源分配的基本单位。
进程之间能不能直接通信?
正常情况下,多进程之间无法进行通信。因为每个进程都有自己独立的内存空间
锁:
为了多进程通信时,保护数据的安全性
一把锁配一把钥匙
l = LOCK()#实例化锁
l.acquire()#加锁
l.release()#释放锁
信号量:
一把锁配多把钥匙
sem = Semaphore(num)
num 代表的是几把钥匙
事件:
e = Event()
e.is_set()#返回一个bool值
e.wait()#阻塞非阻塞
e.set()#把is_set的bool值变为True
e.clear()#把is_set的bool值变为False
生产者消费者模型
主要是为了解耦。说白了就是在生产者和消费者之间加一个缓存区,不让他们直接通讯
借助队列来实现生产者