簡體   English   中英

ExecutorService空閑任務

[英]ExecutorService idle tasks

我使用java.util.ExecutorService來處理任務,有時只有一個工作人員。 我不希望添加諸如閑置任務之類的東西,以在什么都沒有發生並且用戶選擇了某些項目的情況下從數據庫和類似內容中預加載數據。

我的第一個想法是在用戶選擇某項內容時將其添加為任務,因為當用戶開始與所選內容進行交互時,需要數據並且必須以任何一種方式加載數據。

這種方法的問題在於,當用戶選擇另一個項目而沒有對第一個選擇做任何事情時,執行器中就有一項艱巨的任務,這只會使一切變慢。

有什么簡單的主意可以開始這樣的事情嗎? 我真的不想建立一個龐大的管理類來處理它並分類任務或類似的東西。

那么使用PriorityBlockingQueue呢? 將您的任務放在該隊列中,給空閑任務低優先級,以便它們始終在隊列的末尾。 實現池的可運行對象,以便它們僅從隊列中獲取優先級最高的任務並執行它。

為確保將執行的空閑任務替換為更重要的任務,您可以將它們實現為以短塊形式執行,並在每個塊完成后放回隊列中。 如果與此同時將更重要的內容放置在隊列中,則將接下來處理,否則,將從隊列中再次獲取空閑任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM