Re[16]: Java/Kotlin .NET/C# GO
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 15.07.23 18:56
Оценка:
Здравствуйте, novitk, Вы писали:


S>> Еще раз каков смысл в виртуальных потоках, если нужна работа с TaskCompletionSource и CancellationToken.

N>Смысл в глобальной асинхронной монаде, а не в локальной. Из за этого код не нужно ручками в нее (монаду) погружать в отличие от async/await. Все остальное одинаково.
N>Частный механизм, как сигнализировать преждевременное завершение вычислений, совершенно не имеет к этому отношения и абсолютно вторичен.
Покажи работу с TaskCompletionSource и CancellationToken.
Для их использования не нужны виртуальные потоки.
Зачем если есть пул потоков? В этом вся разница. Во многих случаях не нужен await нужна задача.
Можно вызавть await для массива задач (WhenAll, WhenAny ), можно вызвать ContinueWith итд. То есть больше механизмов использования.
Пул потоков более эффективен!

Еще раз читаем

Green threads значительно превосходят встроенные потоки Linux-системы по времени активации потоков и синхронизации.
Встроенные потоки Linux имеют несколько более высокую производительность операций ввода-вывода и переключения контекста.
Когда green thread выполняет блокирующий системный вызов, блокируется не только этот поток, но и все потоки внутри процесса[4]. Чтобы избежать этой проблемы, green threads должны использовать асинхронные операции ввода-вывода, хотя данную сложность можно скрыть, порождая скрытые для пользователя потоки на каждую операцию ввода-вывода, которые объединяются с green thread.


Есть также механизмы, которые позволяют использовать собственные потоки и снизить накладные расходы на активацию и синхронизацию потоков:

[q]
Пулы потоков снижают затраты на порождение новых потоков за счет повторного использования ограниченного числа потоков[


Также, языки, исполняющиеся на виртуальных машинах, НО использующие native threads, могут использовать технику оптимизации — анализ побочных эффектов (Escape-анализ), чтобы избежать синхронизации блоков кода, когда это возможно[6].


S>> Конечно я защищаю то, что знаю. А вот твоя ненависть к шарпу поражает. Видно ты каким то образом обжёгся.

N>Откуда ты берешь про мою ненависть к шарпу? Хороший язык, лучше Явы.
Беру свои слова обратно.
S>> То что файберы они же зеленые потоки где то выигрывают от п времени активации потоков и синхронизации, не делает их серебрянной пулей.
S>>Пул нативных потоков в большинстве эффективней.
S>>...
N>
N>Тебе читать нужно научиться.
и солнце б утром не вставало, когда бы не было меня
Отредактировано 16.07.2023 10:58 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.