📅  最后修改于: 2023-12-03 15:16:23.895000             🧑  作者: Mango
LinkedBlockingDeque是Java中并发编程中的一个队列类,实现了BlockingDeque接口。它是一个线程安全的双向队列,支持在队列的两端插入和删除元素,可以对元素进行阻塞和等待操作。
import java.util.concurrent.LinkedBlockingDeque;
public class LinkedBlockingDequeExample {
public static void main(String[] args) {
LinkedBlockingDeque<String> deque = new LinkedBlockingDeque<>(3);
deque.addFirst("hello");
deque.addLast("world");
deque.offer("java");
try {
deque.putFirst("blocking");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(deque);
deque.pollFirst();
deque.pollLast();
deque.remove();
System.out.println(deque);
}
}
上述代码中,定义了一个指定大小为3的LinkedBlockingDeque队列。首先在队列头部和尾部插入了"hello"和"world",在队列尾部插入了"java"。而后又使用了putFirst方法,将"blocking"插入到队列头部。put方法会在队列满时,阻塞插入线程,等待队列有空位后才能插入数据。
最后,队列头部和尾部弹出元素,使用remove方法弹出队列中的元素"java"。最终输出队列中的结果为"[]",因为队列中已经没有元素了。
LinkedBlockingDeque是一个线程安全的双向队列,支持线程的阻塞和等待操作。在并发编程中,它是一个非常实用的并发容器。