|
|
От: |
Serginio1
|
https://habrahabr.ru/users/serginio1/topics/ |
| Дата: | 18.12.25 11:21 | ||
| Оценка: | |||
·>Очередная демонстрация неспособности читать. Эта цитата о GoLang.S>>go f() — и готово.
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
println("Привет из корутины!")
}
println("Привет из main")
delay(1000L)
}Плюсы
Очень экономичны по ресурсам.
Structured concurrency, runBlocking, coroutineScope.
Совместимы с существующим синхронным кодом.
Минусы
Сложная внутренняя реализация — CPS, state‑machine.
Нужно уметь работать с context«ами, scope, Job, Dispatcher.
Возможны утечки при неправильном использовании.
Что обещали и что получилось
Ожидания: миллионы легких потоков, «магическое» устранение простоев на I/O, совместимость со старым кодом, простота reasoning, минимум усилий со стороны разработчика.
Реальность в целом подтвердилась — если не задевать проблемные места. Там, где нет synchronized, нет повсюду ThreadLocal и не нужно дебажить потоки, все работает, как задумано. Но в продакшене быстро проявились нюансы.