Python 进程间通信

进程间通信的几种方式 参考维基百科的分类,进程间通信主要有以下几种: 文件(File) 信号(Signal) 套接字(Socket) Unix 域套接字(Unix domain socket) 消息队列(Message queue) 匿名管道(Anonymous pipe) 命名管道(Named pipe) 共享内存(Shared memory) 消息传递(Message passing) 内存映射文件(Memory-mapped file) 看下使用 Python 怎么实现。 环境:Arch Linux + Python3.8 文件 符合直觉,数据存在硬盘上,可基于文本或二进制。 对于 pa.py SHARED_FILE = '/tmp/shared_file' def send(): with open(SHARED_FILE, 'w', encoding='utf-8') as f: f.write('some data...') 对于 pb.py def receive(): with open(SHARED_FILE, encoding='utf-8') as f: print(f.read()) 为了避免竞争,数据流向是单向的,可使用两个或以上的文件进行双向通信。 信号 通信偏向底层,且一般不用于传输数据。 Python 中有 os.kill(pid, sig) 以及 signal 模块。 os.kill 发送 sig 给进程 pid,一般会意外终止进程 pid。...

2020-05-25 · 4 分钟 · 679 字