Size: a a a

Kotlin Community

2020 May 20

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Похоже, все ответы в доке CoroutineScheduler:
"Scheduler consists of corePoolSize worker threads to execute CPU-bound tasks and up to maxPoolSize lazily created threads to execute blocking tasks."
corePoolSize - 8+2 = 10, плюс один поток всегда заблокирован.
Ну я же сразу же написал что они делать один пулл 🌚
источник

BP

Bogdan Panchenko in Kotlin Community
Bogdan Panchenko
Dispatchers.IO  делит пул с Dispatchers.Default а переклюбчение - это вполне нормально, так себя ведет сама джава и ОС
^
источник

VP

Vladimir Petrakovich in Kotlin Community
Bogdan Panchenko
Ну я же сразу же написал что они делать один пулл 🌚
Я не знал, что Default такой жручий. Он просто держит 10 потоков на будущее.
источник

BP

Bogdan Panchenko in Kotlin Community
Но то что под дефаут потоки сразу выделяются я не знал
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Я не знал, что Default такой жручий. Он просто держит 10 потоков на будущее.
Дефолт == количество ядер. Может ещё какие эвнистики
источник

VP

Vladimir Petrakovich in Kotlin Community
Bogdan Panchenko
Дефолт == количество ядер. Может ещё какие эвнистики
Да, там не 10, а 8, я неправильно понял код. Ну в целом сходится.
источник

VP

Vladimir Petrakovich in Kotlin Community
Мне казалось, они раньше лениво создавались, только по надобности
источник

BP

Bogdan Panchenko in Kotlin Community
+
источник

D

Dmitry in Kotlin Community
Andrey Bulanov
скопируй его в новый класс, и вырезай куски пока не начнет конвертироваться - вот и будет пример
Проблема была с функцией, которая получала  androidx.core.util.Pair<MutableList<>, MutableList<>>
Котлин пытался привести ее к котлиновскому пейр, ну и тогда оверрайд не работал.
источник

AN

Alexander Nozik in Kotlin Community
i_vovolk
благодарю
Если хочется хардкора, есть еще мои две статьи, про архитектуру на расширениях.
источник

i

i_vovolk in Kotlin Community
Alexander Nozik
Если хочется хардкора, есть еще мои две статьи, про архитектуру на расширениях.
Буду признателен. Мне, как новичку, для саморазвития все полезно
источник

AN

Alexander Nozik in Kotlin Community
i_vovolk
Буду признателен. Мне, как новичку, для саморазвития все полезно
https://proandroiddev.com/an-introduction-context-oriented-programming-in-kotlin-2e79d316b0a2. Но я бы все-таки Елизарова читал для начала (все статьи).
источник

SM

Stanislav Myachenkov in Kotlin Community
sykat
I'm assuming this is Russian only? Haha
There is an english version of my talk here: http://smyachenkov.com/posts/kotlin-static-analysis-tools/, you can check it out 🙂
источник

s

sykat in Kotlin Community
Thank you
источник

RM

Ruslan Mezentsev in Kotlin Community
вопрос по взаимодействию котлина и spring data jpa,
в коде можно как то ограничить чтобы в map не передавали функции которые записывают данные в бд?
или где-то в спринге включить чтобы генерировалось исключение если в readOnly происходит запись в бд?
из-за того что она readOnly, все что вызывается в map не комитится без ошибок, код вызывается
но никаких записей в бд не происходит

@Transactional(readOnly = true)
override fun <T> getUser(userQuery: UserQueryDto, map: (user: User) -> T): List<T> {
   return userRepository.findAll(UserSpecs.userIdEqual(userQuery.id)).map { user ->
       map(user)
   }
}
источник

IK

Igor Komarov in Kotlin Community
Коллеги, а можете пожалуйста подсказать, как будет выглядеть аналогичный код на корутинах?

Вроде бы под это подходят actors, но у меня к ним возникает тот же самый вопрос что и к MVal в arrow – почему можно только в соответствующем scope, это же... странно? Выполняться будет в контексте, в котором мы вызываем put/send, зачем создавать эту штуку внутри контекста

https://gist.github.com/ivkomarov/eb9e8feae7a7a4eb4bbd7115a898b148
источник

IK

Igor Komarov in Kotlin Community
Igor Komarov
Коллеги, а можете пожалуйста подсказать, как будет выглядеть аналогичный код на корутинах?

Вроде бы под это подходят actors, но у меня к ним возникает тот же самый вопрос что и к MVal в arrow – почему можно только в соответствующем scope, это же... странно? Выполняться будет в контексте, в котором мы вызываем put/send, зачем создавать эту штуку внутри контекста

https://gist.github.com/ivkomarov/eb9e8feae7a7a4eb4bbd7115a898b148
Меня интересует конкретно:

– аналогичный механизм выполнения задач с очередями на фиксированном количестве потоков
– собственно, аналог блокирующей очереди с приоритетами (не нашел схожего ничего в корутинах)
источник

AN

Alexander Nozik in Kotlin Community
О, в Граале пофиксил корутины
источник

VS

Vladimir Sitnikov in Kotlin Community
Alexander Nozik
О, в Граале пофиксил корутины
Если точнее, то for в корутинах теперь поддерживается для graalvm native image
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Sitnikov
Если точнее, то for в корутинах теперь поддерживается для graalvm native image
И перформанс в jit, на который жаловались
источник