Эрнест Асанов - Модель асинхронности в C++: теория и практика
Вставка
- Опубліковано 27 вер 2024
- Подробнее о конференции C++ Russia: jrg.su/W8skjE
- -
Сегодня программный код растущими темпами становится асинхронным. Асинхронность используется повсюду: от процессоров, сетевого кода и файлового ввода/вывода, до GUI и GPU. Языки программирования, которые хотят идти в ногу со временем, должны учитывать асинхронность в своем дизайне.
Комитет стандартизации C++ работает над принятием в стандарт C++26 новой модели асинхронных вычислений - std::execution, также известной как Senders/Receivers. Чем эта модель лучше низкоуровневых примитивов стандартной библиотеки, как можно испытать ее на практике уже сейчас с C++17 и при чем тут корутины - об этом Эрнест рассказал в своем докладе.
Отличный докладчик
Самый главный вопрос не задали, а как выполнить граф на разных экзекьютерах. Т.е. у меня есть пул потоков для работы с базой и пул потоков для работы с сетью. Как их обьединить?
Граф состоит из сендеров, есть сендер переключения контекста. В примере показано, как в цепочке происходит переход на другой поток (это может быть и пул потоков) и следующее вычисление в цепочке происходит уже там. Таким образом можно переключаться между пулами, или даже между cpu/gpu
stateful/stateless корутины это неверное произношение stackful/stackless или таковые тоже есть?
неверное произношение