簡體   English   中英

python的多處理隊列默認是“無限”嗎?

[英]Is python's multiprocessing Queue “infinite” by default?

python多處理隊列的文檔: https//docs.python.org/2/library/multiprocessing.html#multiprocessing.Queue

不像queue.Queue那樣清楚: https ://docs.python.org/3/library/queue.html

關於隊列的大小是否是“無限”(如在程序可以管理以分配內存的可能范圍內),當沒有給構造函數賦予maxsize參數時。

是這樣的嗎?

multiprocessing.Queue queue.Queue completly with all features( .task_done().join()除外)

除了task_done()和join()之外,Queue實現了Queue.Queue的所有方法。

因此,如果沒有參數(或負數),它可以采用無限元素

(作為旁注,因為隊列在內部列出了類似結構( dequeueheapqlist ),因此更難有限制,然后沒有限制。)

編輯:

好了,看完源代碼后結果證明,如果沒有指定值, multiprocessing.Queue確實有一個標准的上限:2 ** 31-1

 # file multiprocessing/queues.py class Queue(object): def __init__(self, maxsize=0, *, ctx): if maxsize <= 0: from .synchronize import SEM_VALUE_MAX as maxsize # -> 2**31-1 

所以它不是infinte,而是praticly infinte

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM