Как устроены корутины? / Дмитрий Калугин-Балашов (Exnodes Inc.)
ฝัง
- เผยแพร่เมื่อ 2 มิ.ย. 2019
- Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
--------
--------
Backend Conf, РИТ++ 2018
Тезисы и презентация:
backendconf.ru/2018/abstracts/...
Все слышали о корутинах, многие пробовали играться с ними, некоторые даже истользовали их в реальном проекте. И совсем немного тех, кто понимает, как же они на самом деле работают.
…
--------
Нашли ошибку в видео? Пишите нам на support@ontico.ru
Замечательный доклад. На удивление, всё оказалось понятно
Силиконовая долина поиск по почке
спасибо, интересный доклад, а особенно вопросы после доклада - ничего не понятно, но очень интересно ))
Хороший доклад, хороший чел🙂
Спасибо
Прикольный доклад) спасибо) нужно лучше с памятью разобраться)
НЯМС, setjmp/longjmp не подходит потому что man setjmp говорит так: "Caveats If the function which called setjmp() returns before longjmp() is called, the behavior is undefined.", что делает механизм больше похожим на спцифический try/catch/throw, чем на короутины
А если сохранять значения функции в обертке в замыкании? Таким образом перед выходом из функции можно сохранять и аргументы переданные в функцию и результат функции, и состояние всех переменных. Останется только хранить ссылку на это замыкание. Таким образом это похоже на прототред с состоянием не в глобале. Соответственно и копирования нет и stackful есть )
И синхронную операцию тоже можно передавать в корутины, просто алгоритм этой операции придется переписывать с большими костылями.
Хороший доклад, но говорить надо всё таки лучше научиться.
бгг, он нарисовал стек снизу вверх. Я слышал, что на некоторых архитеркутарх так бывает, помоему даже на АРМ можно выбирать как индейцев так и в какую сторону будет стек расти.
Стек всегда рисуется снизу вверх. Или у вас гравитация ивертирована?
@@DaniilK-hq5go инвертирована. В большинстве CPU стек растет сверху вниз. Это можно и проверить, например на сях можете. Адресс переменной кастите к size_t и печатаете, и потом вызываете функцию и в ней делаете та же. Второй раз напечатает меньшее. число. Архитектур, в которых стек рос бы вверх я и не назову. Вроде они есть - но гораздо более редки.
Язык C весь зал знает, а стек половина😂. Что-то не то.
Почему все видео доклады по coroutines, особенно на русском, делают какие-то инвалиды в плохом смысле этого слова? Дело не в дикции если что. Да и вопрос риторический, можно не отвечать.
Если все кто делают эти доклады(включая Бреслава) то может проблема все таки в тебе, раз сами разработчики этой технологии делают плохие(по твоему мнению доклады)
За исключением Бреслава действительно инвалиды))