Корутины в Kotlin на сервере (Роман Елизаров)

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 เม.ย. 2019
  • Роман Елизаров, разработчик языка Kotlin
    Мы поговорим о традиционных проблемах масштабирования серверных приложений на JVM и о том, как их можно решить с помощью асинхронного кода, который теперь как никогда просто писать благодаря корутинам в Котлине. Мы увидим, как дизайн, основанный на корутинах и структурной многозадачности, позволяет избежать традиционных проблем асинхронного кода, связанных с управлением ресурсами, обработкой ошибок и отменой запросов.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 18

  • @radiopapus
    @radiopapus 8 หลายเดือนก่อน +2

    Спасибо огромное. Хотелось бы услышать харкорный доклад с техническими данными как реализованы корутины.
    Вот только часть вопросов, которые я хотел бы задать (прояснить).
    1. Что означает фраза "корутина засыпает"?
    2. Как система узнает, что результат получен и нужно разбудить корутину и дальше выполнить код, который в ней написан. Как все это увязано с ОС.
    3. Есть ли концептуальные сходства между тем как работают корутины и прерывания?
    4. Правильно ли я понимаю, что корутины дешевле потоков, так как внутри механизма лежит state машина, которая занимается менеджментом корутин. То есть иерархия примерно такая. Процесс -> поток -> корутина?
    5. Как корутины лежат в Heap и почему их не зачищает GC?

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 2 หลายเดือนก่อน

    Спасибо, очень полезно и почти всё понятно.

  • @vitalyparhomenko7817
    @vitalyparhomenko7817 4 ปีที่แล้ว +3

    Спасибо за отличный инструмент!

  • @andrey7530
    @andrey7530 4 ปีที่แล้ว +3

    спасибо за науку!!

  • @alexandervasuho3534
    @alexandervasuho3534 3 ปีที่แล้ว +2

    Довольно понятно, но хотелось бы больше

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 2 หลายเดือนก่อน

    Making with suspend pays off at scale - Создание с помощью приостановки окупается в больших масштабах

  • @maxmuranov8764
    @maxmuranov8764 4 ปีที่แล้ว +1

    Можете подсказать, почему на 29:53 утечет память? Фьючер выполнится в своем потоке, главный тред упадет на первом await, а затем сборщик мусора соберет ненужные данные 2-го фьючера, т.к. ссылок на него больше нет. Разве не так?

    • @alexandr.b
      @alexandr.b 4 ปีที่แล้ว +6

      Если я правильно понял мысль, то утечёт как бы действие)
      Ну т.е. падение первого вызова сервиса не означает прекращение работы над вторым. А он там мб много чего меняет, делает ещё какие-то запросы

    • @maxmuranov8764
      @maxmuranov8764 4 ปีที่แล้ว +1

      @@alexandr.b понял, спасибо!

  • @azmo_
    @azmo_ 8 หลายเดือนก่อน

    RIP Roman 🕊️

  • @davidsaribekyan6438
    @davidsaribekyan6438 4 ปีที่แล้ว +14

    Илон маск

  • @DC-oz5ej
    @DC-oz5ej 2 ปีที่แล้ว +3

    очень интересно, но слушать чавканье и эканье неприятно.

  • @Raymank26
    @Raymank26 2 ปีที่แล้ว

    В реальной жизни всё не совсем так, как Роман рассказывает. Все потоки не заблокируются на медленном сервисе, как правило для этого реализуют circuit breaker и выводят тормозящий сервис из ротации.
    Блокирующий код всё ещё сильно проще писать, понимать и отлаживать. А проблемы в лекции достаточно успешно решаются.

    • @unpub2
      @unpub2 2 ปีที่แล้ว +7

      че за хрень ты несешь

  • @theantferdy
    @theantferdy 3 ปีที่แล้ว +5

    после suspend нихрена не понял. лучше потоками буду играть

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 2 หลายเดือนก่อน

    fibers [ˈfaɪbəz] ворсинки, волокна, волокнистые материалы
    fiber [faɪbə] волокно, нить, клетчатка; белок; световод; волоконный.
    fibre [ˈfaɪbə] волокно, нить, клетчатка

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 2 หลายเดือนก่อน

    unwind [ʌnˈwaɪnd] размотать