![](/img/trans.png)
[英]Python Multiprocessing Queue when set to infinite is capped at 32768 (2^15)
[英]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的所有方法。
因此,如果沒有參數(或負數),它可以采用無限元素
(作為旁注,因為隊列在內部列出了類似結構( dequeue
, heapq
, list
),因此更難有限制,然后沒有限制。)
編輯:
好了,看完源代碼后結果證明,如果沒有指定值, 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.