在 Python 中,可以使用多种方法来实现几个进程之间的通信。
-
简单消息传递:使用
multiprocessing.Queue
或multiprocessing.Pipe
。 -
共享简单数据:使用
multiprocessing.Value
或multiprocessing.Array
。 -
共享复杂数据:使用
multiprocessing.Manager
。 -
进程间信号控制:使用
multiprocessing.Event
。 -
任务分发:使用
multiprocessing.Pool
。
1. 使用 multiprocessing.Queue
multiprocessing.Queue 是一个进程安全的队列,可以用于在多个进程之间交换数据。
示例代码:
import multiprocessing
def sender(queue, messages):
for msg in messages:
queue.put(msg)
def receiver(queue):
while not queue.empty():
msg = queue.get()
print(f"Received: {msg}")
if __name__ == "__main__":
# 创建一个队列
queue = multiprocessing.Queue()
# 要发送的消息
messages = ["Hello", "World", "Python", "Multiprocessing"]
# 创建发送进程和接收进程
send_process = multiprocessing.Process(target=sender, args=(queue, messages))
recv_process = multiprocessing.Process(ta