生产者消费者模型,队列,管道,进程池

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_37615098/article/details/102259938

学习回顾:

  • 并发:在同一个时间段内多个任务同时进行

  • 并行:在同一个时间点上多个任务同时进行

    进程的三大基本状态:

  • 就绪状态:所有进程需要的资源都获取到了,除了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

生产者消费者模型
主要是为了解耦。说白了就是在生产者和消费者之间加一个缓存区,不让他们直接通讯

借助队列来实现生产者

猜你喜欢

转载自blog.csdn.net/qq_37615098/article/details/102259938