繁体   English   中英

Python多处理队列

[英]Python Multiprocessing queue

我正在使用一组我希望并行运行的作业填充队列,并使用python的多处理模块来执行此操作。 以下代码段:

import multiprocessing
from multiprocessing import Queue
queue = Queue()
jobs = [['a', 'b'], ['c', 'd']]
for job in jobs:
    queue.put(job)

当我做queue.get()时,我得到以下内容:

['a', 'b']

为什么队列中没有填充所有作业?

队列实际上正在填充。 每次将对象放入队列时都需要调用queue.get()。 所以你只需要再次调用queue.get()。

>>> import multiprocessing
>>> from multiprocessing import Queue
>>> queue = Queue()
>>> jobs = [['a', 'b'], ['c', 'd']]
>>> for job in jobs:
    queue.put(job)


>>> queue.get()
['a', 'b']
>>> queue.get()
['c', 'd']

队列中将填充所有作业。 queue.get()

从队列中删除并返回一个项目

一个项目是单数。 如果你想排空队列,那么只需将你的.get()放在循环中,但一定要捕获Empty异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM