Python-互斥锁 进程间通讯

1.守护进程 **
如果父进程将子进程设置为守护进程,那么在主进程代码运行完毕后守护进程就立即被回收
(a守护b b如果死了 a也就跟着死了)
在主进程的对象后加入obj.daemon = True


2.互斥锁 ******
# 锁本质上就是一个bool类型的标识符 大家(多个进程) 在执行任务之前先判断标识符
# 互斥锁 两个进程相互排斥

为什么使用锁?
当多个进程对统一资源进行读写时 引发了数据错乱 解决方案就是变成串行
1.join 把整个进程变成串行 并且顺序时固定的
2.锁Lock 可以指定哪些代码出串行 并且对资源的竞争是公平的
本质上就是一个标识符 True 或 False
多个进程要保证使用同一把锁

用来解决什么问题?
用来将并发编成串行,牺牲了效率而保证了数据安全

互斥锁与join的区别:
1、join是人为地指定顺序,而互斥锁是大家平等争抢,一个人拿到锁,其余人都等待
2、join只能将一个进程的代码整体串行,而互斥锁可以将局部串行,局部仅仅代表对共享
数据修改的那一部分代码

3.进程间通讯IPC ***
由于进程之间内存是物理隔离的 无法直接交互数据
1.共享文件 速度慢
2.管道 单向传输 必须有父子关系
***3.共享内存 用一块内存区域作为共享的内存区域
存放共享数据,数据量不能太大 速度快
Manager 共享列表或字典 需要自己处理资源竞争
Queue 队列 带有阻塞效果 不用自己处理资源竞争
先进先出 例如自动扶梯 排队买票


#强调:
#1、队列Queue用来存成进程之间沟通的消息,数据量不应该过大
#2、maxsize的值超过的内存限制就变得毫无意义




猜你喜欢

转载自www.cnblogs.com/du-jun/p/9947233.html