Re[30]: Можно ли избавиться от async|await?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.12.25 11:21
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Serginio1, Вы писали:


S>>·>Речь шла о виртуальных потоках и project loom.

S>> Угу яве то чуть больше четверть века.
·>Очередной ответ невпопад.

S>>Виртуальные потоки в Java: эволюция, практика, подводные камни

S>>

S>>go f() — и готово.

·>Очередная демонстрация неспособности читать. Эта цитата о GoLang.

Согласен

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 и не нужно дебажить потоки, все работает, как задумано. Но в продакшене быстро проявились нюансы.

и солнце б утром не вставало, когда бы не было меня
Отредактировано 18.12.2025 11:24 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.