Re[25]: Можно ли избавиться от async|await?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.12.25 19:34
Оценка: -1 :)
Здравствуйте, novitk, Вы писали:


N>>>а) WhenAll тут не нужен.

S>>Нужен. Он хочет параллельно выполнять 2 задачи. Хотя в .Net есть еще и Parallel.
N>Просто прогони код с двумя await и свой и убедись, что результат одинаков. await, как раз тот сахар, который тут доктор прописал. WhenAll нужен когда число Task не определенно.
Согласен. Если сначала запустить 2 задачи а затем вызвать await будет одно и тоже.
WhenAll , что бы сократить код. Результат можно получить в цикле или нужно просто дождаться выполнение всех задач.

S>> Ну async/await сделан на основе Linq вернее yield в IEnumerable.

N>Я понимаю, что ты очень хочешь поделиться своими познаниями, но мы обзуждали разницу с jvm, а не на чьей основе он сделан.
Эти зеленые потоки уже обсуждали множество раз. Там единственный плюс, что все выполняется в одном потоке, поэтому не нужны блокировки.
То же можно сделать и на C# со своим шедулером с одним потоком.

S>> В этом и вся прелесть .Net. Если сначала Linq тормозил, то затем его оптимизировали. Это же касается и async/await

N>Его некуда оптимизировать компилятором. Для реальных "green thread" нужно менять рантайм.
Ну появились ValueTask, оптимизируются и шедулеры, оптимизируется и автомат переходов.
А green thread это вообще хрень.

В современных версиях Java, таких как Java 8 и выше, зелёные потоки не используются по умолчанию, и управление потоками передаётся операционной системе.

и солнце б утром не вставало, когда бы не было меня
Отредактировано 16.12.2025 19:42 Serginio1 . Предыдущая версия . Еще …
Отредактировано 16.12.2025 19:40 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.