熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java線程:新特征-阻塞隊列

2022-06-13   來源: Java核心技術 

    阻塞隊列是Java線程新特征中的內容Java定義了阻塞隊列的接口ncurrentBlockingQueue阻塞隊列的概念是一個指定長度的隊列如果隊列滿了添加新元素的操作會被阻塞等待直到有空位為止同樣當隊列為空時候請求隊列元素的操作同樣會阻塞等待直到有可用元素為止
 
    有了這樣的功能就為多線程的排隊等候的模型實現開辟了便捷通道非常有用
 
    ncurrentBlockingQueue繼承了javautilQueue接口可以參看API文檔
 
下面給出一個簡單應用的例子


import ncurrentBlockingQueue;
import ncurrentArrayBlockingQueue;

/**
* Java線程新特征阻塞隊列
*
* @author leizhimin ::
*/
public class Test {
        public static void main(String[] args) throws InterruptedException {
                BlockingQueue bqueue = new ArrayBlockingQueue();
                for (int i = ; i < ; i++) {
                        //將指定元素添加到此隊列中如果沒有可用空間將一直等待(如果有必要)
                        bqueueput(i);
                        Systemoutprintln(向阻塞隊列中添加了元素: + i);
                }
                Systemoutprintln(程序到此運行結束即將退出);
        }
}
 
輸出結果

   
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:
向阻塞隊列中添加了元素:

 
    可以看出輸出到元素時候就一直處於等待狀態因為隊列滿了程序阻塞了
 
    這裡沒有用多線程來演示沒有這個必要
 
    另外阻塞隊列還有更多實現類用來滿足各種復雜的需求ArrayBlockingQueue DelayQueue  LinkedBlockingQueue PriorityBlockingQueue SynchronousQueue 具體的API差別也很小
 

  本文出自 熔 巖 博客請務必保留此出處


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25955.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.