Я могу много раз задавать этот вопрос. Извиняюсь за то, что снова попросил об этом. У меня странная проблема.Завершение Java-Thread
У меня есть работа, которая отправляет тысячи рабочих мест через ExecutorService в качестве отдельной задачи Runnable. Это делается в простой петле. Конец цикла for, я вызываю service.shutdown() и за ним следует waitTermination.
Поскольку количество подаваемых нитей огромно, потоки сохраняются до тех пор, пока не будут представлены все задачи.
Есть ли способ, эти потоки могут быть прекращены изящно, как только его исполнение закончено?
Если вы звоните 'ExecutorService.shutdown()' ExecutorService остановит все свои темы (позволяя им возвращаться из своих методов запуска), когда все задания завершены. – Dev
Thanks Dev. Есть ли способ закрыть поток, как только его выполнение будет завершено, а не ждать окончания всех остальных потоков? – user1401472
Выполнение выполнения потоковой работы или потоков не завершено до тех пор, пока «ExecutorService» не будет остановлено. Потоки обычно используются повторно для нескольких заданий. Если вы хотите завершить работу «ExecutorService» после завершения определенного задания, вы можете заблокировать «Будущее» для этого задания и «shutdownNow()» исполнитель, когда он вернется. – Dev