Здравствуйте, 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 отвечает не только за асинхронность, но и параллельность.
Нет, за параллельность отвечают потоки. Создаёшь много потоков — они выполяются параллельно. То что тебе _приходится_ использовать асинхронность — это недостаток платформенных тредов. Ты их не можешь запускать миллионами, поэтому _приходится_ переписывать "старый" код. Иначе всё просто падает нахрен.