背景 & 方案适用场景
Python中可以直接使用Multiprocessing包开启多进程,并使用包中的Queue实现进程间的异步通信。
但是如果需要通信的进程已经被封装,或者是其他语言写的程序,又要实现进程间异步通信,可以参考本文的方案:读写FIFO文件。
*注:除本方案外,想实现不同语言的进程进行通信,也可以使用socket通信等方式
实现进程间异步通信
主要用到以下工具包:
# 用Process类管理多进程
import multiprocessing import Process
# 导入系统工具
import fcntl
import os
写FIFO进程
def productor() -> None:
while True:
'''
其他要在进程中实现的逻辑
'''
try:
msg = "Hello, World!"
fifo_fd = os.open("./tmp_pipe&#