asyncio के लिए दस्तावेज़ प्रिंट करने के बारे "नमस्ते दुनिया" हर दो सेकंड के लिए दो उदाहरण देता है: 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-coroutineपाइथन दुभाषिया को निलंबित किए बिना पृष्ठभूमि में एसिंसिओ इवेंट लूप चला सकता है?
मैं दुभाषिया से उन चला सकते हैं, लेकिन मैं दुभाषिया के लिए उपयोग खो देते हैं तो मुझे क्या करना। क्या पृष्ठभूमि में एसिन्सीओ इवेंट लूप चलाया जा सकता है, ताकि मैं दुभाषिया पर टाइपिंग कमांड रख सकूं?
>>> 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
ध्यान दें कि आप चाहिए कॉल asyncio.set_event_loop
loop
पर, अन्यथा आप एक त्रुटि मिल जाएगा कह रही है कि वर्तमान धागा नहीं है:
आपको बहुत बहुत धन्यवाद। किसी व्यक्ति ने [कहीं] (http://monome.org/community/discussion/comment/208744#Comment_208744) धागे और asyncio का मिश्रण न कहा। क्या आप असहमत हैं? प्रक्रिया पृष्ठभूमि एक ओएससी सर्वर होगा। दुभाषिया से मैं यह बताउंगा कि कौन से संकेत भेजना है। पाइथन प्रक्रिया हल्के वजन होगी, निर्देशों को भेजना (शायद 20 बंडल एक सेकेंड) सिंथेसाइज़र को जो सभी ऑडियो गणित करते हैं। प्रेरणा को देखते हुए, क्या आप मुख्य लूप में सब कुछ डालने का सुझाव देना जारी रखते हैं? –
@ user916142 ठीक है, आमतौर पर 'asyncio' जैसे एसिंक्रोनस फ्रेमवर्क का उपयोग करने का पूरा बिंदु थ्रेड का उपयोग करके * से बचने के लिए है। यदि आप हमेशा इस कोड को एक इंटरैक्टिव दुभाषिया के अंदर चलाने जा रहे हैं, तो मुझे लगता है कि यह समझ में आता है। लेकिन आम तौर पर मैं कहूंगा कि आपको 'asyncio' 'Procotol' या' Stream' लागू करना चाहिए जो आने वाले नेटवर्क कनेक्शन को संभालता है, और फिर बताएं कि नेटवर्क अनुरोधों के माध्यम से कौन से संकेत भेजना है। – dano
धन्यवाद! मुझे OS9, Midi, WebSockets, और धारावाहिक डेटा स्ट्रीम को संभालने वाले धागे के साथ उपयोगकर्ता 916142 की तरह कुछ मिल गया है। मैं इसे सभी को एक घटना लूप में घुमाने की संभावना को देखूंगा, लेकिन अब केवल एक वेबसाकेट मॉड्यूल को एकीकृत करने की आवश्यकता है जो एसिन्सियो पर निर्भर है। – velotron