Coroutines TS: что это такое и как этим пользоваться

preview_player
Показать описание
Андрей Давыдов

Coroutines (async/await и generators, 2 наиболее часто встречающихся частных случая) – горячая тема в языках программирования уже несколько лет. За последний год в экспериментальном статусе эта фича появилась в Rust, Kotlin и, конечно, С++ (Coroutines TS). За несколько лет существования proposal'а накопилось некоторое количество материала о том, что такое корутины и зачем они нужны в C++, прежде всего выступления автора proposal'а, Гора Нишанова. Но при этом с момента своей презентации фича успела сильно эволюционировать, превратившись из кальки C#-го async/await, в нечто более фундаментальное и мощное, но не пригодное для использования "из коробки". Т.е., в отличие от, скажем, C#, имея в распоряжении только компилятор и стандартную библиотеку не получится воспроизвести красивые примеры использования корутин, которыми изобилуют презентации им посвященные.
Рекомендации по теме
Комментарии
Автор

Оракл первый использовал этот принцип в так называемых pipelined функциях, которые возвращают наборы данных. Функция выталкивает из себя строки данных по мере нужности. А внешняя система решает - нужно ли её еще строки данных или нет.

обычно пишется что-то типа

loop
вычисляются данные
pipe row (данные);

if больше нет данных then
return;
end if

end loop;

usser-bYdldQ