dokümantasyon "Hello World" iki saniyede nasıl yazdırılacağı için iki örnek verilmektedir: https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-hello-world-callback https://docs.python.org/3/library/asyncio-task.html#asyncio-hello-world-coroutineBir asyncio olay döngüsü, Python yorumlayıcısını askıya almadan arka planda çalışır mı? asyncio için
Ben tercüman gelenler çalışabilir, ancak bunu yaparsam ben tercüman erişimi kaybeder. Bir asyncio olay döngüsü arka planda çalıştırılabilir, böylece yorumlayıcıya komut yazabilirmiyim? Geçerli iş parçacığı yok diyerek loop
üzerinde size zorunluluk çağrı asyncio.set_event_loop
, aksi halde hata alırsınız
>>> import asyncio
>>>
>>> @asyncio.coroutine
... def greet_every_two_seconds():
... while True:
... print('Hello World')
... yield from asyncio.sleep(2)
...
>>> def loop_in_thread(loop):
... asyncio.set_event_loop(loop)
... loop.run_until_complete(greet_every_two_seconds())
...
>>>
>>> loop = asyncio.get_event_loop()
>>> import threading
>>> t = threading.Thread(target=loop_in_thread, args=(loop,))
>>> t.start()
Hello World
>>>
>>> Hello World
Not:
Çok teşekkür ederim. Birisi [http://monome.org/community/discussion/comment/208744#Comment_208744] konuları ve asyncio'yu karıştırmamayı söyledi. Katılmıyor musun İşlem arka planda bir OSC sunucusudur. Tercümandan, hangi sinyallerin gönderileceğini söylerdim. Python işlemi, tüm ses matematiğini yapan synthesizer'lara talimatlar göndererek (belki saniyede 20 paket) hafif olacaktır. Bu motivasyonu göz önünde bulundurarak, her şeyi ana döngüde yerleştirmeyi öneriyor musunuz? –
@ user916142 Normalde, "asyncio" gibi bir asenkron çerçeveyi kullanmanın tüm noktası, iş parçacıkları kullanarak * kaçınmaktır. Bu kodu her zaman etkileşimli bir tercüman içinde yürütecekseniz, mantıklı olduğunu düşünüyorum. Ancak normalde, gelen ağ bağlantılarını yöneten bir "asyncio" Procotol veya "Stream" uygulamanız gerektiğini söylerim ve sonra ağ istekleri yoluyla hangi sinyallerin gönderileceğini söylersiniz. – dano
Teşekkürler! OSC, Midi, WebSockets ve seri veri akışlarını işleyen thread ile user916142 gibi bir şey var. Hepsini bir olay döngüsüne yerleştirme olasılığına bakacağım, ancak şimdilik sadece asyncio'ya bağlı bir WebSockets modülünü entegre etmek gerekiyordu. – velotron