亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LinkedBlockingQueue原理是什么

發布時間:2021-06-22 15:43:31 來源:億速云 閱讀:181 作者:chen 欄目:大數據

本篇內容主要講解“LinkedBlockingQueue原理是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“LinkedBlockingQueue原理是什么”吧!

LinkedBlockingQueue

構成鏈表的節點表示
static class Node < E > {
    E item;
    Node < E > next;
    Node(E x) {
        item = x;
    }
}


鏈表屬性
private final int capacity;

private final AtomicInteger count = new AtomicInteger();

transient Node < E > head;

private transient Node < E > last;
private final ReentrantLock takeLock = new ReentrantLock();
private final ReentrantLock putLock = new ReentrantLock();
private final Condition notEmpty = takeLock.newCondition();

private final Condition notFull = putLock.newCondition();
使用的方法有
private void signalNotEmpty();
private void signalNotFull();
private void enqueue(Node < E > node);
private E dequeue();
雙鎖

// 把固定的加鎖順序封裝在方法內,確保所有的對兩把鎖加鎖的順序都是一致的。
void fullyLock() {
    putLock.lock();
    takeLock.lock();
}

// 把固定的釋放鎖順序封裝在方法內,確保所有的對兩把鎖的釋放順序都是一致的。
void fullyUnlock() {
    takeLock.unlock();
    putLock.unlock();
}


構造方法
public LinkedBlockingQueue(int capacity) {
    if (capacity <= 0) throw new IllegalArgumentException();
    this.capacity = capacity;
    last = head = new Node < E > (null);
}
public LinkedBlockingQueue(Collection < ? extends E > c)

public int size()
public int remainingCapacity()

public void put(E e) throws InterruptedException
public boolean offer(E e, long timeout, TimeUnit unit)

public boolean offer(E e)

public E take() throws InterruptedException
public E poll(long timeout, TimeUnit unit) throws InterruptedException
public E poll()
/**從頭拿**/
public E peek()


public boolean remove(Object o)
public boolean contains(Object o)
public Object[] toArray()
public < T > T[] toArray(T[] a)
    ......

到此,相信大家對“LinkedBlockingQueue原理是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹山县| 灵璧县| 济源市| 若尔盖县| 大连市| 明星| 德格县| 宁都县| 新源县| 汝南县| 阿巴嘎旗| 阿拉尔市| 黑河市| 资阳市| 嘉义县| 三门峡市| 天气| 林西县| 北安市| 通许县| 佛冈县| 定西市| 张掖市| 阿勒泰市| 惠水县| 多伦县| 土默特右旗| 莒南县| 怀化市| 南城县| 射阳县| 米泉市| 东莞市| 鄂托克旗| 定边县| 忻城县| 安图县| 聂拉木县| 峨眉山市| 霍林郭勒市| 淳化县|