我有一個單線程池ExecutorService對象。在將來的某個時候,使用submit()方法添加任務。我的理解是提交將提交將提交的Runnable添加到要完成的任務列表的末尾。不過,我有一種基於布爾值的情況,我可能想要將可運行程序提交到要執行的任務的前面。我不希望這會影響當前的任務,只是下一個任務將成爲我剛剛完成的任務。一個示例方法如下所示。我該怎麼做呢?Java插入可運行對象到ExecutorService中
感謝
private ExecutorService singleLoadPool = Executors.newSingleThreadExecutor();
public void submitTask(Runnable run, boolean doNow) {
if (doNow)
singleLoadPool.submitFront(run); // This is the method I'm looking for
else
singleLoadPool.submit(run);
}
這正是我所需要的,謝謝 – Jon 2012-08-01 20:38:10
比我的解決方案更好:) – 2012-08-01 20:43:48
所以我只是要實現這個,並且還有一個問題,我如何將作業添加到隊列中?我是否必須重寫ThreadPoolExecutor,因爲我不能將Runnable對象添加到LinkedBlockingDeque中? – Jon 2012-08-02 21:41:37