> 技术文档 > Python multiprocessing.Queue 实战详解:多进程通信的高效利器

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.