asyncio
için Python belgelerinden geçiyordum ve çoğu örnekte neden 'un aksine kullanıldığını merak ediyorum. ÖrneğinNeden çoğu asyncio örneği loop.run_until_complete() kullanıyor?
: https://docs.python.org/dev/library/asyncio-task.html
O ensure_future
engellenmeyen fonksiyonların avantajlarını göstermek için çok daha iyi bir yol olacağını görünüyor. Diğer yandan, run_until_complete
, senkronize işlevler gibi döngüyü engeller.
Bu, ensure_future
loop.run_forever()
ile eşzamanlı olarak birden fazla birlikte çalışma rutinini çalıştırmak yerine run_until_complete
kullanmam gerektiğini hissettiriyor. Bitene kadar bir geleceği çalıştırmak için
'run_until_complete' hiçbir şeyi engellemiyor. 'Run_forever' ile arasındaki fark, döngünün, koroutinin tamamlanmasında duraklamasıdır. Engellenecek tek şey, eğer koloniniz asla beklemez. – dirn
Bu http://pastebin.com/Qi8dQ3bh yazdım ve yine de döngüyü engelliyor gibi görünüyor. do_io() 'uykuyu beklese bile, do_io()' yapana kadar do_other_things() 'işlevi yürütülmez. – SamuelN
Bu, döngüde başka hiçbir şey planlanmadığı için. 'Run_forever' çağırmadan önce' loop.create_task (do_other_things()) 'ifadesini aramayı deneyin. – dirn