Kau*_*han 5 python multiprocessing
我正在使用一组我希望并行运行的作业填充队列,并使用python的多处理模块来执行此操作.以下代码段:
import multiprocessing
from multiprocessing import Queue
queue = Queue()
jobs = [['a', 'b'], ['c', 'd']]
for job in jobs:
queue.put(job)
Run Code Online (Sandbox Code Playgroud)
当我做queue.get()时,我得到以下内容:
['a', 'b']
Run Code Online (Sandbox Code Playgroud)
为什么队列中没有填充所有作业?
Utk*_*glu 13
队列实际上正在填充.每次将对象放入队列时都需要调用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']
Run Code Online (Sandbox Code Playgroud)
Mah*_*der 12
队列中将填充所有作业.queue.get()会
从队列中删除并返回一个项目.
一个项目是单数.如果你想排空队列,那么只需将你.get()放入循环中,但一定要捕获Empty异常.