arrayBlockingQueue 和 linkedBlockingQueue 中的内存消耗
Memory consumption in arrayBlockingQueue and linkedBlockingQueue
假设我将 arrayBlockingQueue
和 linkedBlockingQueue
的容量都设为 100。我只在每个中添加了 10 个元素。
即使 90 个元素为空,array
是否仍能保持满容量?我的意思是它会有 10 个元素和 90 个空值吗?
另一件事, linked
在这种情况下会如何表现?它会有 10 个还是 100 个节点?会不会有 90 'null value nodes'?
谁能给我解释一下?他们在这种情况下表现如何?
在 ArrayBlockingQueue
的情况下,它将创建一个大小为 100 的数组。它将包含您插入的 10 个元素,其余为 null
。
在 LinkedBlockingQueue
的情况下,只会创建 10 个节点 - 这里的容量被用作创建所谓的 有界队列 的限制,最大条目限制(在多线程环境,不超出内存可能会很方便。
假设我将 arrayBlockingQueue
和 linkedBlockingQueue
的容量都设为 100。我只在每个中添加了 10 个元素。
即使 90 个元素为空,array
是否仍能保持满容量?我的意思是它会有 10 个元素和 90 个空值吗?
另一件事, linked
在这种情况下会如何表现?它会有 10 个还是 100 个节点?会不会有 90 'null value nodes'?
谁能给我解释一下?他们在这种情况下表现如何?
在 ArrayBlockingQueue
的情况下,它将创建一个大小为 100 的数组。它将包含您插入的 10 个元素,其余为 null
。
在 LinkedBlockingQueue
的情况下,只会创建 10 个节点 - 这里的容量被用作创建所谓的 有界队列 的限制,最大条目限制(在多线程环境,不超出内存可能会很方便。