Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: thread, runnable

Какие способы создания потоков в Java ты знаешь?

Этот вопрос проверяет знание стандартных способов запуска потоков и понимание различий между ними.

Короткий ответ

В Java есть несколько способов создать поток. Основные — это наследование от Thread и реализация Runnable. Также часто используются Callable и ExecutorService. На практике предпочтение отдаётся работе через пул потоков.

Длинный ответ

Java предлагает несколько уровней абстракции для работы с потоками — от низкоуровневых до более удобных и безопасных.

Основные способы

Перед перечислением важно отметить, что ручное управление потоками используется всё реже.

1. Наследование от Thread

Подходит для простых примеров, но используется редко.

class MyThread extends Thread {
    public void run() {
        // логика потока
    }
}

new MyThread().start();

Недостатки:

  • Нельзя наследоваться от другого класса

  • Смешивается логика задачи и потока

2. Реализация Runnable

Более гибкий и предпочтительный вариант.

Runnable task = () -> {
    // логика задачи
};

new Thread(task).start();

3. Callable

Используется, когда нужен результат выполнения или обработка исключений.

  • Возвращает значение

  • Может выбрасывать checked-исключения

4. ExecutorService

Современный и рекомендуемый способ.

  • Управляет пулом потоков

  • Упрощает масштабирование

  • Снижает количество ошибок

ExecutorService executor = Executors.newFixedThreadPool(4);
// executor.submit(task);

Вывод

В реальных проектах почти всегда используют ExecutorService, так как он безопаснее и удобнее ручного управления потоками.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Java

    Java

Ключевые слова

#thread

#runnable

Подпишись на Java Developer в телеграм