C++ lectures at MIPT (in Russian). Lecture 11. Asynchronous programming, part 1

Поділитися
Вставка
  • Опубліковано 28 вер 2024
  • Лекции в магистратуре МФТИ по C++ на русском языке.
    Эта лекция начинает второй семестр.
    Знакомимся с потоками, асинхронным программированием, искусством давать и выполнять обещания, упакованными задачами и параллельными алгоритмами стандартной библиотеки. Очень много замеров конкретного кода
    Лектор: Константин Владимиров
    Дата лекции: 4 февраля 2020 года
    Съёмка и звук: Дмитрий Рябцев
    Предыдущая лекция: • C++ lectures at MIPT (...
    Следующая лекция: • C++ lectures at MIPT (...
    Слайды ко всем лекциям: sourceforge.ne...
    Errata:
    * 33:22 если мы дошли до конца скоупа и не сделали join / detach и поток joinable(), то это не уб, там вполне определенное поведение - std::terminate
    * 50:46 std::thread::hardware_concurrency может вернуть ноль если информация не доступна или не точно определена

КОМЕНТАРІ • 21

  • @shimonmaman983
    @shimonmaman983 3 роки тому +7

    Константин, спасибо вам большое. Благодаря вашим лекциям проясняется очень много сложных вещей.

  • @miroslavgoncharenko9786
    @miroslavgoncharenko9786 4 роки тому +6

    Спасибо за интересную лекцию! Немного занудства: все же std::copy использует memmove, а не memcpy

    • @tilir
      @tilir  4 роки тому +1

      Спасибо, это действительно так и следует из ограничений на перекрытие/не перекрытие областей. Очень тонкое замечание!

  • @АндрейШерстобитов-в8д

    1:11:40
    На cppreference есть описание deduction guides для packaged_task, но вот в самом стандарте его почему-то до сих пор нет. По крайней мере Ваш код с примера без явного указания типов не собирается(.
    Нашел пропоузал "3117. Missing packaged_task deduction guides" предложенный в 2018 году, ссылка нормально не прикрепляется к сожалению.

  • @АлексейШеин-щ2щ
    @АлексейШеин-щ2щ 4 роки тому +1

    Доброго дня! Спасибо за лекцию! Ну и на 43:38 очепятка. Лямбда divi, а в thread передаёте divide.

    • @tilir
      @tilir  4 роки тому

      Спасибо, я поправил слайды которые скоро выложу

  • @ivankorotkov2563
    @ivankorotkov2563 3 роки тому

    41:14 "только здесь консоль так себе".
    Оффтоп: советую попробовать модный windows terminal. По мне намного приятнее обычного cmd, надеюсь его сделают дефолтным в следущей винде. Можно настроить разные профили и в соседних вкладках работать в cmd, PowerShell, VS Developer Command Prompt, консоли линукса и т.п.

    • @tilir
      @tilir  3 роки тому +3

      Я тут недавно открыл для себя, что можно установить Linux Subsystem for Windows и нормальную убунту поверх. Что сразу даёт нормальный терминал с нормальным башем внутри.

    • @ivankorotkov2563
      @ivankorotkov2563 3 роки тому

      Без линукса было совсем грустно, да. Мой комментарий немного про другое. Виндовс терминал не является самостоятельной оболочкой, она служит для запуска других консольных программ или оболочек, в том числе и для линуксового баша.
      По дизайну она больше похожа на линуксовый терминал, и мне нравится больше чем дефолтное окно консоли.

    • @deathstar9739
      @deathstar9739 2 роки тому

      @@tilir windows terminal работает и с wsl

    • @tilir
      @tilir  2 роки тому

      @@deathstar9739 так а зачем он если уже есть bash?