📅  最后修改于: 2023-12-03 15:31:57.168000             🧑  作者: Mango
LinkedBlockingQueue是Java中一个线程安全、可阻塞的队列实现,内部维护了一个链表数据结构。size()方法是其中一个用于获取队列大小的方法。
public int size()
返回队列中元素的数量。
size()方法直接返回队列内元素的数量,不需对队列进行任何操作。由于LinkedBlockingQueue内部维护了一个计数器,每次元素入队、出队都会更新计数器值,因此size()方法可以直接获取元素数量,时间复杂度为O(1)。
LinkedBlockingQueue<String> queue = new LinkedBlockingQueue<>(10);
queue.offer("A");
queue.offer("B");
queue.offer("C");
System.out.println(queue.size()); // 输出3
在上述示例中,我们创建了一个容量为10的LinkedBlockingQueue对象,向队列中添加了"A"、"B"、"C"三个元素,最后输出了队列大小,即3。
LinkedBlockingQueue是一个有界队列,当队列已满时,offer()方法会阻塞线程;当队列为空时,take()方法会阻塞线程。因此在使用LinkedBlockingQueue时要注意控制队列大小,避免出现OOM等内存问题。