JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Введение в многопоточность: зачем нужна

    JAVA 25 SELF
    51 уровень,0 лекция
    Зачем программам потоки и параллельность: от отзывчивого интерфейса до загрузки всех ядер процессора. Разбираем разницу между процессами и потоками, роль главного потока main в JVM, практические кейсы (UI, серверы, обработка файлов) и риски: race condition, deadlock, а также базовые инструменты синхронизации вроде synchronized. Покажем простой пример c Thread и запуском двух задач параллельно.
    Открыта
  • Запуск потоков: Thread и Runnable, синтаксис

    JAVA 25 SELF
    51 уровень,1 лекция
    В лекции разбираем запуск потоков в Java: знакомимся с классом Thread и интерфейсом Runnable, учимся правильно вызывать start() и не путать его с run(), используем анонимные классы и лямбда-выражения, запускаем несколько потоков и смотрим на жизненный цикл ( NEW → RUNNABLE → TERMINATED). Поговорим о методах Thread.currentThread(), getName(), ожидании через join() и типичных ошибках вроде IllegalThreadStateException.
    Открыта
  • Состояния и жизненный цикл потока

    JAVA 25 SELF
    51 уровень,2 лекция
    Разбираем жизненный цикл потока в Java: от Thread.State (
    NEW
    ,
    RUNNABLE
    ,
    BLOCKED
    ,
    WAITING
    ,
    TIMED_WAITING
    ,
    TERMINATED
    ) до переходов между ними. Учимся управлять потоками с помощью Thread.sleep(...), join(), interrupt(), диагностировать состояние через isAlive() и getState(), а также избегать устаревших методов типа stop()/ suspend()/ resume(). В конце — практические советы и частые ошибки.
    Открыта
  • Параметры и приоритеты потоков

    JAVA 25 SELF
    51 уровень,3 лекция
    Как безопасно передавать параметры в потоки через конструктор класса, реализующего Runnable, когда уместны лямбда-выражения, и почему поля лучше делать final. Разбираем приоритеты потоков: методы setPriority/ getPriority, константы Thread.MIN_PRIORITY, Thread.NORM_PRIORITY, Thread.MAX_PRIORITY и их влияние на планировщик. Плюс — именование потоков через конструктор, setName/ getName, практический пример и типичные ошибки (общий Runnable, сеттеры, надежды на приоритеты).
    Открыта
  • Состояние гонки (race condition)

    JAVA 25 SELF
    51 уровень,4 лекция
    В лекции разбираем, что такое состояние гонки: когда несколько потоков одновременно обращаются к общим данным, а результат зависит от порядка планирования. На примере инкремента counter ++ показываем, почему операция не атомарна, и как теряются инкременты. Разбираем практический кейс с банковским счётом, последствия в продакшене и подходы к защите: synchronized, атомарные типы из java.util.concurrent.atomic (например, AtomicInteger), а также иммутабельность. Завершаем разделом «Типичные ошибки», где объясняется, почему Thread-баги редко ловятся тестами и почему «лечить» их Thread. sleep( 1) бессмысленно.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush