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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • std::async — политики запуска

    C++ SELF
    71 уровень,0 лекция
    Разбираем, зачем нужны std::async и std::future, что именно «гарантирует» асинхронность в C++, и как на поведение влияет политика запуска std::launch (в частности std::launch::async и std::launch::deferred). На примерах увидим, где работа реально идёт параллельно, где откладывается до get()/ wait(), а также обсудим время жизни данных, std::future<void> и типичные ошибки.
    Открыта
  • std::future: get(), wait(), wait_for() и таймауты

    C++ SELF
    71 уровень,1 лекция
    Разбираем модель std::future как «ручку» к общему состоянию результата: чем отличаются wait() и get() (и почему get() «сжигает билет»), как правильно ждать с ограничением по времени через wait_for()/ wait_until(), как интерпретировать статусы std::future_status ( ready, timeout, deferred), и как собрать аккуратный «спиннер» прогресса без busy-wait.
    Открыта
  • std::promise и std::packaged_task

    C++ SELF
    71 уровень,2 лекция
    Разбираем «ручную» асинхронность в C++: как связаны std::promise<T> и std::future<T> через shared state, как вручную доставлять результат (и сигнал завершения через std::promise<void>), зачем нужен std::packaged_task для хранения/передачи задач как объектов, и чем всё это отличается от std::async. Отдельно — дисциплина времени жизни, перенос в поток через std::move и типичные ошибки (двойной get_future(), забытый mutable, «сломанное обещание»).
    Открыта
  • Исключения в async‑коде

    C++ SELF
    71 уровень,3 лекция
    Разбираем, почему в конкурентном C++ исключения «всплывают» не в месте std::async, а в точке потребления результата — при future.get(): как устроено shared state, почему wait()/ wait_for() не гарантируют успех, как влияет режим std::launch::deferred, и как доставлять ошибки вручную через std::promise с set_exception, std::exception_ptr и std::current_exception(). В конце — нюансы вроде broken promise, одноразового get() и типичных ловушек.
    Открыта
  • std::atomic: флаги и счётчики + выбор stop_token

    C++ SELF
    71 уровень,4 лекция
    Разбираем практику работы с std::atomic в C++: как уйти от гонок данных при общих флагах и счётчиках, какие минимальные операции использовать ( load(), store(), fetch_add(), exchange()), почему атомик не заменяет mutex, и как выбирать между std::stop_token, condition_variable и atomic<bool> для корректной остановки и ожидания событий.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush