Python multiprocessing.Queue 实战详解:多进程通信的高效利器
multiprocessing.Queue
是 Python multiprocessing
模块提供的进程间通信(IPC)工具之一,它允许不同的进程之间安全地传输数据。它与 queue.Queue
类似,但可以在多个进程之间共享。
1. multiprocessing.Queue
基本用法
multiprocessing.Queue
允许在不同的进程之间进行数据交换,使用 put()
方法将数据放入队列,使用 get()
方法从队列中取出数据。
示例:基本的生产者-消费者模型
import multiprocessingimport timedef producer(q): \"\"\"生产者函数,向队列中放入数据\"\"\" for i in range(5): q.put(i) print(f\"生产数据: {i}\") time.sleep(0.5)def consumer(q): \"\"\"消费者函数,从队列中取出数据\"\"\" while True: item = q.get() # 这里会阻塞直到队列有数据 if item is None: # 退出信号 break print(f\"消费数据: {item}\") time.sleep(1)if __name__ == \"__main__\": queue = multiprocessing.Queue() # 创建队列 p1 = multiprocessing.Process(target=producer, args=(queue,)) p2 = multiprocessing.Process(target=consumer, args=(queue,)) p1.start() p2.start() p1.join() # 等待生产者结束 queue.put(None) # 发送结束信号 p2.join() # 等待消费者结束 print(\"主进程结束\")
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.