📅  最后修改于: 2023-12-03 15:31:53.171000             🧑  作者: Mango
LinkedBlockingDeque 是 Java 中的一个双端阻塞队列,它继承自 BlockingDeque 接口并且实现了 Deque 接口。其中 putLast(E e) 方法用于将指定元素添加到队列的尾部,如果队列已满,则阻塞等待,直到队列有空闲位置为止。
public void putLast(E e) throws InterruptedException
import java.util.concurrent.LinkedBlockingDeque;
public class LinkedBlockingDequeExample {
public static void main(String[] args) throws InterruptedException {
LinkedBlockingDeque<Integer> deque = new LinkedBlockingDeque<>(3);
deque.putLast(1);
deque.putLast(2);
deque.putLast(3);
// 尝试向已满队列添加元素,会导致阻塞
System.out.println("将会阻塞...");
deque.putLast(4);
System.out.println("已添加元素 4");
System.out.println(deque);
}
}
以上示例创建了一个容量为 3 的双端阻塞队列,向其中添加了 3 个整数。接着尝试向已满的队列添加元素 4,会导致阻塞。最后打印队列中的元素,输出如下:
将会阻塞...
已添加元素 4
[1, 2, 3, 4]
从输出结果中可以看到,线程在 putLast() 方法处被阻塞,直到队列中有空闲位置,才能够添加元素。同时也可以看到,元素 4 已经成功添加到了队列的尾部。