Geo*_*rge 6 python python-multithreading python-3.x python-multiprocessing python-3.6
python 的多处理队列的文档:https : //docs.python.org/2/library/multiprocessing.html#multiprocessing.Queue
不像 queue.Queue 那样清楚:https ://docs.python.org/3/library/queue.html
当 maxsize 参数没有提供给构造函数时,关于队列的大小是否是“无限的”(例如,在程序可以设法分配内存的任何可能范围内)。
是这样吗?
multiprocessing.Queuequeue.Queue完全模仿所有特征(除了.task_done()和.join())
Queue 实现了 Queue.Queue 的所有方法,除了 task_done() 和 join()。
所以没有参数(或负数)它可以采用无限元素
(作为旁注,因为队列在内部像结构(dequeue, heapq, list)一样列表,所以很难有限制,然后没有限制。)
编辑:
好吧,在查看源代码后发现,multiprocessing.Queue如果没有指定值,它确实有一个标准的上限:2**31-1
Run Code Online (Sandbox Code Playgroud)# 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
所以它不是无限的,而是实际无限的
| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |