В чем разница между ThreadGroup, ThreadPool, ThreadPoolExcecutor, Excecutor и ExcecutorServise?

Недавно начал изучение многопоточности в джава и столкнулся с этими понятиями. Они все вроде служат для организации потоков, но в чем их разница?


Ответы (2 шт):

Автор решения: Алексей Осецкий

В java есть два интерфейса для многопоточности Callable и Runnable.

Всё класс которые имплементятся от Runnable, значений не возвращают. Те которые имплементятся от Callable возвращают значения.

ThreadGroup неудачный класс судя по книге: Эффективное программирование, Джошуа Блох

Дальше смотрите в документации каждый класс, и задавайте более точные вопросы, так как данный вопрос слишком общий

→ Ссылка
Автор решения: Eugene Krivenja

Дополню принятый ответ.

Executor это интерфейс для запуска Runnable без возможности управления процессом исполнения.

ExecutorService это тоже интерфейс для запуска как Runnable, так и Callable, плюс управление самим процессом исполнения.

ThreadPoolExecutor это одна из имплементаций обоих интерфейсов.

→ Ссылка