Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

Чем Runnable отличается от Thread?

Вопрос проверяет понимание базовой модели многопоточности в Java и принципов разделения ответственности.

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

Runnable — это интерфейс, который описывает задачу для выполнения в отдельном потоке. Thread — это конкретный поток исполнения. Runnable не управляет потоком, а только содержит логику. На практике предпочтительнее использовать Runnable, а не наследоваться от Thread.

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

В Java важно различать что выполнять и в чем выполнять.

Runnable

Определение:
Runnable — интерфейс, описывающий задачу, которая может быть выполнена в потоке.

Особенности:

  • содержит только метод run()

  • не управляет жизненным циклом потока

  • может использоваться с пулом потоков

Runnable task = () -> {
    System.out.println("Работа в потоке");
};

Thread

Определение:
Thread — это объект, представляющий реальный поток выполнения.

Особенности:

  • управляет запуском и жизненным циклом

  • содержит метод start()

  • может принимать Runnable в конструкторе

Thread thread = new Thread(task);
thread.start();

Ключевые различия

Перед сравнением важно отметить, что Thread — это механизм, а Runnable — это логика.

  • Runnable позволяет отделить задачу от способа выполнения

  • наследование от Thread ограничивает иерархию классов

  • Runnable лучше подходит для масштабирования и пулов потоков

Краткий вывод

Runnable описывает работу, а Thread выполняет ее, поэтому в реальных приложениях чаще используют Runnable вместе с механизмами управления потоками.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Java

    Java

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

#runnable

#thread

#multithreading

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