Сначала немного фона. Я получил предупреждение в NetBeans, чтобы мне не начинать новый поток в конструкторе. Я прочитал, что причина этого в том, что новый поток может начаться и попытаться ссылаться на объект, который начал поток, прежде чем конструктор фактически сделает объект.Некоторые вопросы о Threading в Java
1.) Для экспериментов вместо использования new Thread
и thread.start()
Я пробовал ExecutorService
, и у меня не было предупреждения. Означает ли это, что нормально создавать и запускать новый поток в конструкторе, если я использую ExecutorService
?
2.) Кроме того, если у меня есть в виде кэшированных пула потоков будет создание нового потока с помощью стандартного метода new Thread
и thread.start()
тянуть нить из пула кэша в ExecutorService
(или вызвать его создать один, если он недоступен) или эти потоки полностью независимы от пула кешированных потоков?
спасибо, вы объяснили обе точки хорошо. – ubiquibacon