Встречается на собеседованиях • сегодня

В чем разница между submit в Executor и start в Thread

submit() в ExecutorService и start() в Thread выполняют разные задачи:

  1. start():
    • Запускает новый поток (Thread), который выполняется параллельно.
    • Можно использовать только один раз для одного потока.
    java
    Thread thread = new Thread(() -> System.out.println("Running"));
    thread.start();
  1. submit():
    • Принимает Runnable или Callable и отправляет задачу в пул потоков (ExecutorService).
    • Возвращает Future, позволяя отслеживать результат выполнения (если Callable).
    • Пул управляет потоками автоматически (переиспользование, очередь задач).
    java
    ExecutorService executor = Executors.newFixedThreadPool(2);
    Future<?> future = executor.submit(() -> System.out.println("Task executed"));
    executor.shutdown();

Ключевое отличие: start() создает новый поток, а submit() использует существующий пул потоков, что эффективнее для множества задач.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы