Вот с таким решением не проходит и вывод не соответствует, хотя человек в комментариях здесь пишет, что с таким кодом прошло)
LinkedBlockingQueue<Runnable> linkedBlockingQueue = new LinkedBlockingQueue<>();
        for (int i = 1; i <= 10; i++) {
            int finalI = i;
            linkedBlockingQueue.add(new Runnable() {
                @Override
                public void run() {
                    doExpensiveOperation(finalI);
                }
            });
        }
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 5, 1000, TimeUnit.MILLISECONDS, linkedBlockingQueue);
        threadPoolExecutor.prestartAllCoreThreads();
        threadPoolExecutor.shutdownNow();
        threadPoolExecutor.awaitTermination(5, TimeUnit.SECONDS);
}
Сам я пытался решить аналогично предыдущей задаче с таким кодом:
LinkedBlockingQueue<Runnable> blockingQueue = new LinkedBlockingQueue<>();
       ThreadPoolExecutor service = new ThreadPoolExecutor(3, 5, 1000, TimeUnit.MILLISECONDS, blockingQueue);
       for (int i = 0; i < 10; i++) {
           final int finalI = i+1;
           service.submit(new Runnable() {
               @Override
               public void run() {
                   doExpensiveOperation(finalI);
               }
           });
           service.prestartAllCoreThreads();
           service.shutdown();
           service.awaitTermination(5, TimeUnit.SECONDS);

       }
       }
Но так не прошло и выдавало ошибку в строке вызова service.submit. Объясните пожалуйста.