Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: thread, concurrency, synchronized, lock, executor

Как работает многопоточность в Java?

Проверяет знание моделей параллелизма JVM, управления потоками и проблем синхронизации.

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

В Java каждый Thread — отдельный поток ОС, выполняющий байткод JVM. Потоки видят общий кучу памяти, но имеют собственный стек и набор регистров. Для координации доступа к общим ресурсам применяют synchronized, Lock, volatile и высокоуровневые конструкции (ExecutorService, Semaphore).

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

Запуск и жизненный цикл:

  • new Thread(runnable).start() создаёт и запускает ОС-поток.

  • Состояния: New → Runnable → Running → Blocked/Waiting → Terminated.

Общая память и видимость:

  • Heap разделяется между всеми потоками; стек и регистры локальны.

  • volatile гарантирует видимость изменений переменной между потоками.

Синхронизация:

  • synchronized блок или метод: мониторы объектов; вход в блок требует захвата монитора, выход — освобождения.

  • Lock (ReentrantLock): более гибкие возможности (tryLock, fair).

Проблемы:

  • Гонки: одновременное изменение разделяемых данных без синхронизации.

  • Deadlock: взаимная блокировка потоков на нескольких мониторах.

  • Live lock и starvation.

Высокоуровневый API:

  • ExecutorService: пул потоков, планирование задач.

  • ForkJoinPool: для рекурсивных задач через ForkJoinTask.

  • CompletableFuture: асинхронные конвейеры обработки.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Java

    Java

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

#thread

#concurrency

#synchronized

#lock

#executor

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

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.