簡體   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