Павел Новиков - Учимся готовить C++ корутины на практике

  Рет қаралды 10,113

C++ Russia — Конференция по разработке на Cpp

C++ Russia — Конференция по разработке на Cpp

Күн бұрын

Ближайшая конференция - C++ Russia 2025, 20-21 марта, Москва + online. Подробности и билеты: jrg.su/9Sszhd
- -
В С++20 появился мощный инструмент - корутины. Однако в данный момент в стандартной библиотеке C++ практически нет средств для удобной работы с корутинами «из коробки». Поэтому нужно научиться их готовить, чтобы использовать этот инструмент с пользой и эффективно. Этим мы и займёмся.
Разберёмся, как использовать корутины с нуля для работы с асинхронными задачами.

Пікірлер: 7
@jbystr
@jbystr Ай бұрын
Лектор полез в дебри, не показав пример простой программы с корутиной. Из этого видео ничего нельзя понять человеку, незнакомому с корутинами. Поэтому не рекомендую смотреть это видео тем, кто только приступает к изучению корутин.
@sergeyvlasov207
@sergeyvlasov207 9 ай бұрын
Спасибо автору, постарался объяснить все четко. Но по факту, просто пришили сороконожке 41-ю ногу. А зачем? А чтобы было...
@cppprograms5868
@cppprograms5868 3 жыл бұрын
Давайте делайте уроки по С++!!!
@DART2WADER
@DART2WADER 3 жыл бұрын
Это к Константину Владимирову на канал.
@MichailS-e5l
@MichailS-e5l 11 ай бұрын
Что за корутин и зачем он нужен не возможно понять из этих слов
@andy.1331
@andy.1331 3 жыл бұрын
FinalAwaitable на 35-м слайде тоже _должен_ реализовать симметричную передачу управления приостановленной (или отсутствующей) корутине. Просто возвращайте всегда из метода FinalAwaitable::await_suspend значение promise.continuation Также непонятно зачем определять собственный оператор co_await для Task. Кстати, если в терминологии promise, то почему Task, а не future? Да ещё и с большой буквы. Разве C# для нас уже стал абсолютным источником замещения наших собственных творческих замыслов и правил С++? :-) Проще и понятнее сделать сам Task (или future) awaitable без переопределения оператора co_await. Тем более, что это действительно просто. Лучше, наверное, привести пример с использованием некоего пула потоков для реализации асинхронного выполения задачи, вместо того, чтобы говорить "я так сделал, но вы так никогда не делайте". Тем более, что для Windows это _вообще_ не проблема - для Linux не знаю, не использую
@PaulSkeptic
@PaulSkeptic 3 жыл бұрын
Для *FinalAwaitable* теоретически можно было бы сделать симметричную передачу управления, но незачем, потому что *FinalAwaitable* используется только на завершении выполнения корутины, т.е. текущую корутину нет смысла возобновлять при симметричной передаче управления, потому что она по сути уже завершилась. Всегда возвращать *promise.continuation* нельзя, потому что продолжение не всегда является валидной корутиной (поэтому есть проверка перед возобновлением). Можно было бы возвращать *promise.continuation* _или_ *std::noop_coroutine()* при симметричной передаче управления, но это получаются приседания ради приседаний, профит такого подхода не понятен. Определение *operator co_await* - _самый простой_ способ (из по крайней мере трёх) сделать возможность ожидать объект какго-либо типа (т.е. звать *co_await* на таком объекте).
Павел Новиков - Под капотом стандартной библиотеки C++
1:00:04
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 4 М.
Sigma girl VS Sigma Error girl 2  #shorts #sigma
0:27
Jin and Hattie
Рет қаралды 124 МЛН
Their Boat Engine Fell Off
0:13
Newsflare
Рет қаралды 15 МЛН
Jaidarman TOP / Жоғары лига-2023 / Жекпе-жек 1-ТУР / 1-топ
1:30:54
-5+3은 뭔가요? 📚 #shorts
0:19
5 분 Tricks
Рет қаралды 13 МЛН
Антон Полухин - C++ трюки из userver
1:01:03
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 18 М.
C++ Siberia 2020: Антон Полухин - Незаменимый С++
1:27:06
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 20 М.
Антон Полухин - Анатомия асинхронных движков
56:20
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 7 М.
C++ Siberia 2019: Антон Полухин, C++ на практике
54:26
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 47 М.
Вы НЕ умеете замечать ЗНАКИ и ПОДСКАЗКИ от жизни
20:54
МАРГУЛАН СЕЙСЕМБАЙ
Рет қаралды 317 М.
#1 Что такое корутина. Важные особенности || Курс по корутинам
16:40
Android Broadcast. Все об Андроид разработке
Рет қаралды 94 М.
Марсель Галимуллин - Корутины для начинающих
1:01:55
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 2,1 М.
C++ Siberia 2021: Антон Полухин, Read me!
1:10:47
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 7 М.
Антон Полухин - Монолит vs Микросервисы, и Как эффективно работать с последними в C++
57:34
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 11 М.
Sigma girl VS Sigma Error girl 2  #shorts #sigma
0:27
Jin and Hattie
Рет қаралды 124 МЛН