我试图让两个函数(协同程序)与共享阅读器并行工作,来自单个开放网络连接的编写器流如下:
reader, writer = yield from asyncio.open_connection(
host, port, ssl=sc, loop=loop)
一旦连接打开,我可以在两个while循环中共享它,如下所示:
@asyncio.coroutine
def rvcr(loop)
while True:
data = yield from reader.readline()
# do something with it
@asyncio.coroutine
def xmtr(loop)
while True:
# get some data
writer.write(data)
现在我想安排它们在循环中运行但不会相互阻塞。我已经阅读了很多例子,但是由于某种原因,asyncio让我很困惑。
一些例子显示
loop = asyncio.get_event_loop()
asyncio.async(rcvr(loop))
asyncio.async(xmtr(loop))
loop.run_forever()
但是rcvr功能块,我似乎无法正确传递读写器。我认为这不是一件容易的事,但出于某种原因我失败了。
任何人都可以帮忙。