Re[50]: Можно ли избавиться от async|await?
От: · Великобритания  
Дата: 12.01.26 14:21
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>_Зачем_ он асинхронный?

S> Затем что задача выполняется в отдельном потоке.
Выполнение в отдельном потоке означает параллельное выполнение. Это не отвечает на вопрос _зачем_ метод обязан быть асинхронным.

S>·>Ок, уже лучше. А _зачем_ нужен асинхронный ввод-вывод? Что плохого в коде, который делает просто что-то вроде print(file.read(...)) или sendResults(sqlQuery.execute(...))?

S> Да ничего.
Именно. Так зачем переписывать "старый код"? Зачем писать новый код с async/await?

S> Просто при print задействован контроллер, а не CPU.

S>Операционная система — аппаратное обеспечение ввода-вывода
Речь о коде на языке программирования идёт, а не об операционной системе.

S>>> Ты не читатель. Я как раз и говорю, что виртуальные потоки хороши для старого синхронного кода.

S>·>С этим я и не спорю. И это офигенное преимущество — берём старый код и запускаем параллельно ничего не стесняясь.
S>С этим никто не спорит. Об этом я тебе сразу и писал. Проблема в поддержке старого и нового.
S>Так как Task отвечает не только за асинхронность, но и параллельность.
_Зачем_ он отвечает за параллельность?

S>>>Но для нового кода сложно использовать виртуальные потоки и Task так как задачи используются не только для асинхронного, но и параллельного кода.

S>·>А вот с этим спорю. В чём сложность-то?
S> Ну ты сам приводил кучу когда, где использовались различные апи.
Э.. И? Выбор api зависит от решаемой задачи. Какой тебе удобно, такой и используй. У тебя есть выбор. Можешь хоть свой API написать. А в случае когда виртуальных потоков нет, приходится устраивать цирк, что ты там нам показывал со всякими асинхронными очередями. Который с треском навернётся, если где-то кто-то как-то внезапно заблокирует что-нибудь.
Или для тебя сложностью является наличие выбора?

S>>>То есть код надо переделывать на async/await.

S>·>Зачем надо?
S> Ну вот как с тобой разговаривать? Прочитай еще раз внимательно
S>

S>Так как Task отвечает не только за асинхронность, но и параллельность.

Нет, за параллельность отвечают потоки. Создаёшь много потоков — они выполяются параллельно. То что тебе _приходится_ использовать асинхронность — это недостаток платформенных тредов. Ты их не можешь запускать миллионами, поэтому _приходится_ переписывать "старый" код. Иначе всё просто падает нахрен.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.