进程之间通信(IPC)
进程之间通信(IPC)
-
进程之间是数据隔离的
-
进程之间通信的方式
-
基于文件:适用于同一台机器上的多个进程之间通信
-
Pipe 管道 不加Lock锁,所以数据不安全
-
Queue 队列(先进先出)队列是基于socket\pikel\Lock实现的,数据是安全的,不需要加锁
-
基于socket的文件级别的通信来完成数据传递的
-
from multiprocessing import Queue from multiprocessing import Process def pro(q): for i in range(5): print(q.get()) #取出Queue中的数据 def son(q): for i in range(10): q.put(f'hello{i}') #将hello放入Queue队列当中 if __name__ == '__main__': q=Queue() ret=Process(target=son,args=(q,)).start() ret1=Process(target=pro,args=(q,)).start() # print(q.get()) #取出Queue中的数据
-
-
-
基于网络:适用于同一台机器或着多台机器上的多进程通信
- 第三方工具(消息中间件)
- memcache
- redis
- rabbitmq
- kafka
- 第三方工具(消息中间件)
-