How to wait for all threads to finish, using ExecutorService?

前端 未结 26 2043
你的背包
你的背包 2020-11-22 01:55

I need to execute some amount of tasks 4 at a time, something like this:

ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
    tas         


        
26条回答
  •  误落风尘
    2020-11-22 02:32

    you should use executorService.shutdown() and executorService.awaitTermination method.

    An example as follows :

    public class ScheduledThreadPoolExample {
    
        public static void main(String[] args) throws InterruptedException {
            ScheduledExecutorService executorService = Executors.newScheduledThreadPool(5);
            executorService.scheduleAtFixedRate(() -> System.out.println("process task."),
                    0, 1, TimeUnit.SECONDS);
    
            TimeUnit.SECONDS.sleep(10);
            executorService.shutdown();
            executorService.awaitTermination(1, TimeUnit.DAYS);
        }
    
    }
    

提交回复
热议问题