延時任務 DelayQueue詳解

2021-10-08 15:57:12 字數 1453 閱讀 7985

3. 總結

delayqueue中的元素要實現delayed介面,delayed介面又實現了 comparable介面

public

inte***ce

delayed

extends

comparable

public

inte***ce

comparable

class

work

implements

delayed

@override

public

long

getdelay

(timeunit unit)

@override

public

intcompareto

(delayed o)

}public

class

testmain

system.out.

format

("name:, time:\n"

,take.name,

newdate()

);}}

}

我們根據上面的呼叫示例來看看原始碼,先看看入隊操作

通過原始碼我們可以看到delayqueue一共有4個入隊方法,add(e),offer(e),put(e),offer(t,long,timeunit),但其實都是呼叫offer(e)的實現。

public

boolean

add(e e)

public

void

put(e e)

public

boolean

offer

(e e,

long timeout, timeunit unit)

public

boolean

offer

(e e)

return

true;}

finally

}

出隊也有4個方法,poll(),take(),poll(long,timeunit),peek() ,我這邊主要寫一下poll和take

poll()

/**

* 返回並移除隊首到期元素,如果隊裡沒有到期元素則返回 null

* 非阻塞

*/public e poll()

finally

}

take()
/**

* 返回隊首到期元素,如果到期元素則等待到有乙個到期元素返回

* 阻塞

*/public e take()

throws interruptedexception

finally}}

}}finally

}

延時任務與定時任務

1.延時任務 at命令的使用 1 開啟終端,在根目錄下建立乙個新的目錄取名為 at 2 進入 at目錄下,執行watch n 1 ls l at命令,對其進行監控 3 同時開啟另乙個終端,執行命令 at 某個將來的具體時刻 表示將來在某個時刻執行你特定的操作 例如下圖便是在17 20在 at目錄下建...

延時任務和定時任務

1.at 延時 at l 檢視任務 at r 任務編號 刪除任務 etc at.allow 白名單,白名單中存在的使用者可以使用at,白名單優先順序高,黑白名單中使用者同時存在,白名單生效 etc at.deny 黑名單,存在的使用者不能使用at 2.crontab 定時 由crond.servic...

Linux 延時任務與定時任務

延時任務 系統的延時任務是通過at命令是實現的,負責這個延時任務的服務是atd服務,通常這個服務是預設開啟的 延時任務的發起過程 1 at time 表示在某一時刻發起任務 2 dosomething 任務具體執行的內容 3 ctrl d 儲存該命令 延時任務的常見命令 延時任務的黑名單 延時任務白...