小编sol*_*arw的帖子

每个python进程的Asyncio事件循环(aioprocessing,多个事件循环)

我有两个过程; 主进程和子进程.主进程正在运行asyncio事件循环,并启动子进程.我想在子进程中启动另一个asyncio事件循环.我正在使用该 aioprocessing模块启动子进程.

子进程函数是:

def subprocess_code():
     loop = asyncio.get_event_loop()
     @asyncio.coroutine
     def f():
        for i in range(10):
            print(i)
            yield from asyncio.sleep(1)
     loop.run_until_complete(f())
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

    loop.run_until_complete(f())
  File "/usr/lib/python3.4/asyncio/base_events.py", line 271, in run_until_complete
    self.run_forever()
  File "/usr/lib/python3.4/asyncio/base_events.py", line 239, in run_forever
    raise RuntimeError('Event loop is running.')
RuntimeError: Event loop is running.
Run Code Online (Sandbox Code Playgroud)

是否可以asyncio在子进程中启动新的或重新启动现有的事件循环?如果是这样,怎么样?

python python-asyncio

8
推荐指数
1
解决办法
2657
查看次数

标签 统计

python ×1

python-asyncio ×1