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

Лекции

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

    JAVA 25 SELF
    52 уровень,0 лекция
    Эта лекция о том, что такое общий ресурс в многопоточных приложениях, почему возникают состояния гонки (race condition) и «потерянные обновления», и как защитить данные с помощью synchronized. Разберём базовые приёмы синхронизации (методы и блоки), поговорим о современных инструментах из java.util.concurrent ( Lock, ReentrantLock, Semaphore и др.), увидим практические примеры с инкрементом счётчика и типичные ошибки (неатомарность i ++, неверный объект блокировки, мифы про volatile).
    Открыта
  • synchronized, volatile: синтаксис, применение

    JAVA 25 SELF
    52 уровень,1 лекция
    Практическая лекция по многопоточности: разбираем, как работает ключевое слово synchronized (блоки и методы, монитор объекта и блокировка на уровне класса ClassName.class), чем отличается видимость изменений через volatile от атомарности операций, почему boolean-флаги удобно делать volatile, а инкремент count ++ требует синхронизации. Сопоставим, когда выбирать synchronized, а когда — volatile, и разберём типичные ошибки.
    Открыта
  • ReentrantLock и ReadWriteLock: отличие, примеры

    JAVA 25 SELF
    52 уровень,2 лекция
    Практическое сравнение классической синхронизации через synchronized с более гибкими примитивами из пакета java.util.concurrent.locks: ReentrantLock и ReadWriteLock. Разберём, как явно управлять блокировками ( lock()/ unlock(), tryLock() с таймаутом), как масштабировать чтение с помощью ReentrantReadWriteLock, что такое «честность» ( fair mode), где каждый инструмент уместен, и какие ошибки встречаются чаще всего.
    Открыта
  • Мьютексы и семафоры: синтаксис и задачи

    JAVA 25 SELF
    52 уровень,3 лекция
    В этой лекции разберём ключевые примитивы синхронизации в Java: как защищать критические секции с помощью synchronized и класса ReentrantLock (методы lock()/ unlock(), конструкция try- finally), а также как ограничивать параллелизм через Semaphore (методы acquire()/ release()). Сравним мьютекс и семафор в таблице, рассмотрим практические кейсы (банк, сервер с лимитом подключений) и типичные ошибки, приводящие к deadlock и потерям производительности.
    Открыта
  • Разбор типичных ошибок при синхронизации

    JAVA 25 SELF
    52 уровень,4 лекция
    Практический разбор частых ошибок многопоточности в Java: забытый unlock()/ release() у ReentrantLock и Semaphore (лечится через try- finally), выбор неправильного монитора для synchronized, взаимные блокировки (deadlock) и порядок взятия локов, избыточная синхронизация, а также границы применимости volatile и замена на AtomicInteger. Примеры, советы и понятные аналогии — чтобы код не «вставал колом».
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush