История изменений
Исправление rsync, (текущая версия) :
Потому, что асинхронный алгоритм != синхронному
это почему это?
когда я в корутине пишу
results = []
for url in urls:
resp = await http.get(url)
results.append(resp)
то запросы у меня выполняются (в пределах той же корутины) строго последовательно - точно так же как и в синхронном коде.
отличие от синхронного кода только в том, что корутин работает параллельно несколько.
Если корутина (таск) всего одна, то код из асинхронного вырождается в синхронный
и вот если бы не эти кретинские ограничения на использование async/await строго совместно, то можно было бы писать код одинаково работающий и в синхронной парадигме программирования и в асинхронной.
Например для noSQL баз данных на Perl часто так и делают: пишут драйвер работающий только в асинхронной парадигме, а в синхронной работает он же: в целом тех, кто пользуется драйвером в синхронной парадигме не сильно заботит то что там на бакенде трудится асинхронная машина, пусть и обслуживая всего один, а не множество потоков
Исходная версия rsync, :
Потому, что асинхронный алгоритм != синхронному
это почему это?
когда я в корутине пишу
results = []
for url in urls:
resp = await http.get(url)
results.append(resp)
то запросы у меня выполняются (в пределах той же корутины) строго последовательно - точно так же как и в синхронном коде.
отличие от синхронного кода только в том, что корутин работает параллельно несколько.
и вот если бы не эти кретинские ограничения на использование async/await строго совместно, то можно было бы писать код одинаково работающий и в синхронной парадигме программирования и в асинхронной.
Например для noSQL баз данных на Perl часто так и делают: пишут драйвер работающий только в асинхронной парадигме, а в синхронной работает он же: в целом тех, кто пользуется драйвером в синхронной парадигме не сильно заботит то что там на бакенде трудится асинхронная машина, пусть и обслуживая всего один, а не множество потоков