J2SE----ArrayBlockingQueue

         ArrayBlockingQueue是Java Collections Framework成員之一。

         ArrayBlockingQueue是一個有邊界,底層是用數組實現的。這個隊列的特性是先進先出(FIFO  First in First out)。它可以在系統中作爲一個有邊界的緩存區來使用。在生產者與消費者模式中,它做Producer和Consumer之間溝通的固定Buffer存在。這個隊列中的元素是生產者(Producers)插入,消費者從隊列中拿出元素,進行數據分析,加工。一旦創建了這個隊列,是不能改變它的大小的。這個隊列有兩種情況會發生堵塞:

          1.當隊列已滿,這時生產者線程對隊列進行插入操作的時候。

          2.當隊列已空,這時消費者線程對隊列進行獲取操作的時候。

        這個隊列對於生產者和消費者線程,在執行隊列操作的時候,是相對公平的。這個隊列在構建上,要根據系統本身的情況,進行綜合考慮,比如說,隊列的大小,消費者線程的大小,生產者有多少。這個世界是公平的,這種設計會對系統吞吐量有點影響,不過,它可以使系統更加穩定。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章