С точки зрения последовательности вызовов, я имею в виду. Каждая последующая строка строго после завершения работы предыдущей, никакого выигрыша во времени от асинка нет
С точки зрения последовательности вызовов, я имею в виду. Каждая последующая строка строго после завершения работы предыдущей, никакого выигрыша во времени от асинка нет
есть, у тебя одновременно может работать множество тасок, причём даже на одном-единственном потоке/ядре
вот если бы у тебя learn_song или sing_song были какими-нибудь тяжеловесными задачами, которые спавнились в тругом потоке, то... было бы хорошо, потому что в момент засыпания на .await можно переключиться на другую задачу
короче смотри на это несколько с другой стороны: представь, что у тебя есть ЦПУ с одним ядром без гипертрединга, у тебя есть только 1 тред. а теперь подумай как ты можешь с таким железом обрабатывать 1к соединений параллельно?