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 может вернуть ноль если информация не доступна или не точно определена
Константин, спасибо вам большое. Благодаря вашим лекциям проясняется очень много сложных вещей.
Спасибо за интересную лекцию! Немного занудства: все же std::copy использует memmove, а не memcpy
Спасибо, это действительно так и следует из ограничений на перекрытие/не перекрытие областей. Очень тонкое замечание!
1:11:40
На cppreference есть описание deduction guides для packaged_task, но вот в самом стандарте его почему-то до сих пор нет. По крайней мере Ваш код с примера без явного указания типов не собирается(.
Нашел пропоузал "3117. Missing packaged_task deduction guides" предложенный в 2018 году, ссылка нормально не прикрепляется к сожалению.
Доброго дня! Спасибо за лекцию! Ну и на 43:38 очепятка. Лямбда divi, а в thread передаёте divide.
Спасибо, я поправил слайды которые скоро выложу
41:14 "только здесь консоль так себе".
Оффтоп: советую попробовать модный windows terminal. По мне намного приятнее обычного cmd, надеюсь его сделают дефолтным в следущей винде. Можно настроить разные профили и в соседних вкладках работать в cmd, PowerShell, VS Developer Command Prompt, консоли линукса и т.п.
Я тут недавно открыл для себя, что можно установить Linux Subsystem for Windows и нормальную убунту поверх. Что сразу даёт нормальный терминал с нормальным башем внутри.
Без линукса было совсем грустно, да. Мой комментарий немного про другое. Виндовс терминал не является самостоятельной оболочкой, она служит для запуска других консольных программ или оболочек, в том числе и для линуксового баша.
По дизайну она больше похожа на линуксовый терминал, и мне нравится больше чем дефолтное окно консоли.
@@tilir windows terminal работает и с wsl
@@deathstar9739 так а зачем он если уже есть bash?