Size: a a a

Kotlin Community

2020 May 17

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Совсем перпендикулярно. Они там каналы затаскивать хотят, но идея все равно про треды
Ну я так понял, что треды оставили для совместимости, под капотом там никаких тредов не будут. Если не считать того пула на котором оно всё выполняется
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Ну я так понял, что треды оставили для совместимости, под капотом там никаких тредов не будут. Если не считать того пула на котором оно всё выполняется
Вот я чего-то уже запутался, что у них там. Когда-то читал, но забыл уже. CPS без явных точек прерывания сложно сделать, так что как я понял, там просто копирование виртуального стэка. Это все равно дороже, чем корутины.
источник

IO

Iaroslav Orlov in Kotlin Community
Boris Vanin
Ну я так понял, что треды оставили для совместимости, под капотом там никаких тредов не будут. Если не считать того пула на котором оно всё выполняется
т.е. каждый thread.start заменят на какую-то другую штуку?
источник

AN

Alexander Nozik in Kotlin Community
Поэтому иметь IO пул на луме должно быть выгодно, а обычную асинхронщину - не особо
источник

BV

Boris Vanin in Kotlin Community
Iaroslav Orlov
т.е. каждый thread.start заменят на какую-то другую штуку?
Нет, новый тип треда появится
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
т.е. каждый thread.start заменят на какую-то другую штуку?
Посмотрите документ, на который я сослался. Там просто другая реализация Thread
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Поэтому иметь IO пул на луме должно быть выгодно, а обычную асинхронщину - не особо
Что значит обычную?
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Что значит обычную?
множественные вложенные launch/async
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Вот я чего-то уже запутался, что у них там. Когда-то читал, но забыл уже. CPS без явных точек прерывания сложно сделать, так что как я понял, там просто копирование виртуального стэка. Это все равно дороже, чем корутины.
Ну, это зависит от того как сделают это
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
множественные вложенные launch/async
А в чём проблема?
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
А в чём проблема?
Вроде много раз это обсуждали. Корутины не копируют стэк (из-за этого проблемы с отладочным трейсом), а лум компирует стэк вызова как обычный тред. То есть оверхед на context switch в луме должен быть существенно выше.
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Поэтому иметь IO пул на луме должно быть выгодно, а обычную асинхронщину - не особо
На луме вообще не предполагается иметь пулов, я так понимаю, по умолчанию будет комонпул, а треды файберы предполагается создавать на каждый чих
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
На луме вообще не предполагается иметь пулов, я так понимаю, по умолчанию будет комонпул, а треды файберы предполагается создавать на каждый чих
Я имею в виду, что в случаях, где нужно реально иметь много блокирующих тредов, лум поможет. В случае, когда все и так хорошо работает на небольшом пуле, он особенно ничего не даст.
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Я имею в виду, что в случаях, где нужно реально иметь много блокирующих тредов, лум поможет. В случае, когда все и так хорошо работает на небольшом пуле, он особенно ничего не даст.
Так и есть, да
источник

BV

Boris Vanin in Kotlin Community
Но зато реализация неблокирующего кода станет тривиальным
источник

BV

Boris Vanin in Kotlin Community
Не надо будет с нио разбираться
источник

BV

Boris Vanin in Kotlin Community
А корутины эту проблему не решают. Они друг друга неплохо дополняют
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
А корутины эту проблему не решают. Они друг друга неплохо дополняют
ага
источник

M

Mi in Kotlin Community
может ли кто-нибудь помочь разобраться почему в gradle все зависимости требуют 1.4-М1 версию котлина когда ничего в скрипте об этом не сказано (я ставил плагин  попробовать, потом откатил обратно, но ничего не поменялось): https://gist.github.com/Meosit/815ec7cac89406aa6f534e7ebab3a94c
источник

AN

Alexander Nozik in Kotlin Community
Mi
может ли кто-нибудь помочь разобраться почему в gradle все зависимости требуют 1.4-М1 версию котлина когда ничего в скрипте об этом не сказано (я ставил плагин  попробовать, потом откатил обратно, но ничего не поменялось): https://gist.github.com/Meosit/815ec7cac89406aa6f534e7ebab3a94c
val ktorVersion = "1.3.2-1.4-M1-2"
источник