在 Python 中,可以使用多种方法来实现几个进程之间的通信。
-
简单消息传递:使用
multiprocessing.Queue
或multiprocessing.Pipe
。 -
共享简单数据:使用
multiprocessing.Value
或multiprocessing.Array
。 -
共享复杂数据:使用
multiprocessing.Manager
。 -
进程间信号控制:使用
multiprocessing.Event
。 -
任务分发:使用
multiprocessing.Pool
。
1. 使用 multiprocessing.Queue
multiprocessing.Queue 是一个进程安全的队列,可以用于在多个进程之间交换数据。
示例代码:
import multiprocessingdef 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