簡體   English   中英

如何在Java中以某個時間間隔一個一個地執行列表中的項目?

[英]How to execute items in a list one by one at some interval in Java?

我有一個項目清單。 我想對列表中的每個項目一一運行一些操作。 該操作可能需要 5 分鍾才能完成。 問題是對於列表中的特定項目,操作應該開始並完成,然后只有下一個項目的操作才應該開始,依此類推。 該操作應該只對列表中的項目數執行。

此列表正被多個線程使用。

我正在考慮使用 TimerTask 或 Schedular。

可以請幫忙嗎?

理想情況下,您應該按順序進行,因為在這里使用並發沒有任何好處。

但是,如果它需要多線程,您可以執行以下操作...

List<Runnable> tasks = new ArrayList<>();
tasks.add(new ThreadOne()); /* Pick better names for tasks */
tasks.add(new ThreadTwo());
...
ExecutorService worker = Executors.newSingleThreadExecutor();
worker.submit(() -> {
    while (!Thread.interrupted()) 
        tasks.forEach(Runnable::run);
});
worker.shutdown();

暫無
暫無

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

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