delayqueue是乙個無界阻塞佇列,只有在延遲期滿時才能從中提取元素。該佇列的頭部是延遲期滿後儲存時間最長的delayed 元素。
快取系統的設計,快取中的物件,超過了空閒時間,需要從快取中移出;任務排程系統,能夠準確的把握任務的執行時間。
我們可能需要通過執行緒處理很多時間上要求很嚴格的資料,如果使用普通的執行緒,我們就需要遍歷所有的物件,乙個乙個的檢 檢視資料是否過期等,首先這樣在執行上的效率不會太高,其次就是這種設計的風格也大大的影響了資料的精度。乙個需要12:00點執行的任務可能12:01 才執行,這樣對資料要求很高的系統有更大的弊端。由此我們可以使用delayqueue。
為了具有呼叫行為,存放到delaydeque的元素必須繼承delayed介面。delayed介面使物件成為延遲物件,它使存放在delayqueue類中的物件具有了啟用日期。該介面強制執行下列兩個方法。
DelayQueue 實現延時佇列
延遲佇列不需要不停的掃瞄快取 任務 輪訓等,它能夠實現在準確的時間點去執行任務。public class delaytask implements delayed public taskbase getdata public long getexpire override public long g...
DelayQueue延時佇列的使用
在談到delayqueue的使用和原理的時候,我們首先介紹一下delayqueue,delayqueue是乙個無界阻塞佇列,只有在延遲期滿時才能從中提取元素。該佇列的頭部是延遲期滿後儲存時間最長的delayed 元素。delayqueue阻塞佇列在我們系統開發中也常常會用到,例如 快取系統的設計,快...
延時任務 DelayQueue詳解
3.總結 delayqueue中的元素要實現delayed介面,delayed介面又實現了 comparable介面 public inte ce delayed extends comparable public inte ce comparable class work implements d...