1
私はコルーチンとヘルプasyncioとpython3で通信を行うタスクを持っています。 1つのコルーチン場合 はTRUサイクル、異なる間隔で戻り値、及び他のコルーチンは、このデータasyncio coroutineからの結果を取得
import asyncio
@asyncio.coroutine
def write(future):
i=0
while True:
yield from asyncio.sleep(1)
future.set_result('data: '.format(i))
i+=1
def got_result(future):
print(future.result())
loop = asyncio.get_event_loop()
future = asyncio.Future()
asyncio.ensure_future(write(future))
future.add_done_callback(got_result)
try:
loop.run_forever()
finally:
loop.close()
使用「asyncio.Queue」 –
ありがとうございました。キューを使用するつもりなら、待ち行列を常にチェックするのではなく、イベントでそれをどのように読むことができるのでしょうか。キュー " –
"を使用するメソッド "asyncio.Future()。add_done_callback(func)"の原則で動作する必要があります。エンドユーザのコードは決して '.add_done_callback'を呼び出すべきではありません。 '真:wait.get()'を実行します。 –