Java線程-線程池-阻塞棧

阻塞棧和阻塞隊列類似,不同的是,阻塞棧是「後入先出」的結構。阻塞隊列是「先入先出」的結構,每次操作的都是隊列頭。
阻塞棧是Java6的新特徵。
Java爲阻塞棧定義了接口:java.util.concurrent.BlockingDeque,其實現類也比較多,具體可以查看JavaAPI文檔。
代碼如下:

public class Thread_Bdueue {
    public static void main(String args[]){
        BlockingDeque blockingDeque=new LinkedBlockingDeque(20);
        for (int i=0;i<30;i++){
            try {
                //指定元素添加到阻塞棧當中,如果沒有可用空間,則一直等待
                blockingDeque.putFirst(i);
                System.out.println("向阻塞棧當中添加了元素:"+i);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("程序到此運行結束-------");
    }
}

運行結果如下:
在這裏插入圖片描述 從結果可以看出,當運行到19的時候, 程序並沒有結束,而是被阻塞住了,程序一直在等待。