一、守护进程
简单的说就是a守护b,如果b死了a也一起死了。
守护进程的代码Process(target=task).daemon = True必须在启动程序之前执行。
应用场景:安卓手机里有大量的守护进程。
二、互斥锁
互斥:两者不能同时存在。
通过互斥锁让2个进程相互排斥,a进程运行时,b进程不运行。
为什么使用?
多个进程并发的访问了同一个资源 将导致资源竞争(同时读取不会产生问题 同时修改才会出问题)
当多个进程对统一资源进行读写时 引发了数据错乱 解决方案就是变成串行。
怎么使用?
在需要加锁的地方 lock.acquire()表示锁定
在代码执行完之后一定要lock.release()表示释放锁
三、进程间通讯
IPC 指的是进程间通讯
之所以开启子进程 肯定需要它帮我们完成任务 很多情况下 需要将数据返回给父进程
然而 进程内存是物理隔离的
1.文件
2.管道
3.共享内存
Manager 共享列表或字典 放在主进程的数据,子进程可以修改
Queue(x) 是一个队列 带有阻塞效果。x是储存容量,默认的block是Ture,如果超过容量就会阻塞,如果block=False超过就会报错。timeout=x,如果满了 愿意等x秒 如果x秒后还存不进去 就炸