DelayQueue原始碼分析

2021-09-20 01:25:07 字數 815 閱讀 1288

public class delayqueueextends abstractqueueimplements blockingqueue

public boolean add(e e)

public void put(e e)

public boolean offer(e e, long timeout, timeunit unit)

//上面幾個方法最後呼叫的都是這個offer方法,offer方法不會掛起執行緒,所以上面的幾個方法都不會掛起執行緒

public boolean offer(e e)

return true;

} finally

}//poll方法也不會掛起執行緒

public e poll() finally

}//take方法可能會掛起當前執行緒

public e take() throws interruptedexception finally }}

}} finally

}//帶超時時間的poll也會掛起執行緒

public e poll(long timeout, timeunit unit) throws interruptedexception else finally }}

}} finally

}//delayqueue的peek方法呼叫的是priorityqueue的peek方法

public e peek() finally

}//獲取佇列的元素數量

public int size() finally

}}

延遲佇列 DelayQueue 使用與原始碼解析

當記憶體中有一堆的客戶資訊,需要實時移除vip到期的客戶的特權時有以下做法。以上做法2有現成的佇列可以使用,就是接下來要說的延遲佇列。是不是跟優先佇列很像。delayqueue其內部就聚合了乙個優先佇列。其實現了queue,collection,blockingqueue。這裡注意一點,因為dela...

DelayQueue原理分析

delayqueue是乙個無界阻塞佇列,只有在延遲期滿時才能從中提取元素。該佇列的頭部是延遲期滿後儲存時間最長的delayed 元素。delayqueue是乙個用來延時處理的佇列,所謂延時處理就是說可以為佇列中元素設定乙個過期時間,相關的操作受到這個設定時間的控制。a 關閉空閒連線。伺服器中,有很多...

spring原始碼分析 spring原始碼分析

1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...