运行大量manager.Queue()队列的示例
时间: 2024-02-05 18:12:54 浏览: 210
c# queue 队列例子
5星 · 资源好评率100%
以下是一个运行大量 `manager.Queue()` 队列的示例代码:
```python
from multiprocessing import Process, Manager
def worker(queue):
"""处理队列中的任务"""
while True:
item = queue.get()
if item is None:
break
print("Processing item:", item)
if __name__ == '__main__':
num_queues = 10
num_items = 1000
with Manager() as manager:
queues = [manager.Queue() for _ in range(num_queues)]
processes = [Process(target=worker, args=(queue,)) for queue in queues]
# 启动进程
for process in processes:
process.start()
# 向队列中添加任务
for i in range(num_items):
queue_index = i % num_queues
queues[queue_index].put(i)
# 添加结束标记
for queue in queues:
queue.put(None)
# 等待所有进程完成任务
for process in processes:
process.join()
```
这个示例创建了 10 个队列和相应的进程来处理这些队列中的项目。它向队列中添加了 1000 个项目,然后通过在每个队列中放置一个 `None` 来通知进程,所有的项目都已经添加完毕。最后,它等待所有进程完成任务。
阅读全文