java阻塞佇列介紹 jdk 1 8

2021-09-02 13:46:16 字數 1160 閱讀 5965

blockqueue提供的相關操作和特點:

方法/處理方式

丟擲異常

返回特殊值

一直阻塞

超時退出

插入

add(e)

offer(e)

put(e)

offer(e,time,unit)

刪除remove()

poll()

take()

poll(time,unit)

檢查element()

peek()

無無arrayblockingqueue

陣列實現的有界阻塞佇列

linkedblockingqueue

鍊錶實現的有界阻塞佇列

priorityblockingqueue

支援優先順序排序的無界阻塞佇列

delayqueue

優先順序佇列實現的無界阻塞佇列

synchronousqueue

不儲存元素的阻塞佇列

linkedtransferqueue

鍊錶實現的無界阻塞佇列

linkedblockingdeque

鍊錶實現的雙向阻塞佇列

arrayblockingqueue 原始碼分析:

1 add(e)

public boolean add(e e)
offer 插入成功後返回false,如果不成功說明佇列已滿,丟擲異常。

2 offer(e)

public boolean offer(e e) 

} finally

}

如果e為空丟擲空指標異常,先獲得鎖,如果佇列已滿返回false,否則加入佇列。

private void enqueue(e x)
一開始putindex = 0,0賦值之後,和length,即建立佇列制定的長度比對,相等說明佇列滿了,count為實際元素的個數,觸發佇列不為空事件。

3 put(e)

public void put(e e) throws interruptedexception  finally 

}

當佇列已滿時,等待。 其他操作類似。

Java 方法引用(JDK1 8)

引用 物件引用,物件引用的本質在於為乙個物件起別名,即 不同的棧記憶體可以同時指向同一塊堆記憶體空間。與物件引用類似的情況是,方法引用,即 為方法設定別名。在jdk 1.8之中針對於方法引用提供有如下的四種形式 引用靜態方法 類名稱 static方法名稱 引用某個物件的方法 例項化物件 普通方法 引...

jdk1 8常用總結

1.查詢集合裡的第乙個物件 filter 例 查詢listlist 中username為小明的物件t list.stream filter findfirst 1 list.stream filter e 小明 equals e.getusername findfirst 2.查詢滿足條件的物件,並...

Java基礎入門之jdk1 8新特性

語法糖,也叫糖衣語法 指的是計算機中 新增某種語法 這種語法 能使程式設計師更加方便的使用語言開發程式,同時,增強了 的可讀性 避免了出錯的機會,但是,這種語法對於語言的功能並且有增強 例如 泛型 自動裝箱拆箱 增強for迴圈 基本格式 引數列表 形參列表 0個或者n個 當乙個介面中,只包含乙個方法...