Спасибо, очень полезно и почти всё понятно.
Спасибо за отличный инструмент!
спасибо за науку!!
Довольно понятно, но хотелось бы больше
Making with suspend pays off at scale - Создание с помощью приостановки окупается в больших масштабах
Можете подсказать, почему на 29:53 утечет память? Фьючер выполнится в своем потоке, главный тред упадет на первом await, а затем сборщик мусора соберет ненужные данные 2-го фьючера, т.к. ссылок на него больше нет. Разве не так?
Если я правильно понял мысль, то утечёт как бы действие)
Ну т.е. падение первого вызова сервиса не означает прекращение работы над вторым. А он там мб много чего меняет, делает ещё какие-то запросы
Илон маск
очень интересно, но слушать чавканье и эканье неприятно.
В реальной жизни всё не совсем так, как Роман рассказывает. Все потоки не заблокируются на медленном сервисе, как правило для этого реализуют circuit breaker и выводят тормозящий сервис из ротации.
Блокирующий код всё ещё сильно проще писать, понимать и отлаживать. А проблемы в лекции достаточно успешно решаются.
после suspend нихрена не понял. лучше потоками буду играть
fibers [ˈfaɪbəz] ворсинки, волокна, волокнистые материалы
fiber [faɪbə] волокно, нить, клетчатка; белок; световод; волоконный.
fibre [ˈfaɪbə] волокно, нить, клетчатка
unwind [ʌnˈwaɪnd] размотать
Спасибо огромное. Хотелось бы услышать харкорный доклад с техническими данными как реализованы корутины.
Вот только часть вопросов, которые я хотел бы задать (прояснить).
1. Что означает фраза "корутина засыпает"?
2. Как система узнает, что результат получен и нужно разбудить корутину и дальше выполнить код, который в ней написан. Как все это увязано с ОС.
3. Есть ли концептуальные сходства между тем как работают корутины и прерывания?
4. Правильно ли я понимаю, что корутины дешевле потоков, так как внутри механизма лежит state машина, которая занимается менеджментом корутин. То есть иерархия примерно такая. Процесс -> поток -> корутина?
5. Как корутины лежат в Heap и почему их не зачищает GC?