【发布时间】:2017-09-12 05:44:47
【问题描述】:
我有一个用 Python 3.5 实现的服务,它应该定期通过网络加载文件。我想避免在加载时阻塞主线程。为了避免在我的应用程序中引入线程和共享内存的复杂性,我想使用带有 asyncio 包的事件循环来对此进行检测。
为了运行事件循环,我找到了AbstractEventLoop.run_forever() 和AbstractEventLoop.run_until_complete(future) 方法,但它们似乎在调用时都阻塞了主线程。我发现避免这种情况的唯一方法是在不同的线程中启动循环。但是如果我仍然使用线程,那么使用事件循环就没有意义了。
所以我的问题是:是否可以在不产生线程或进程的情况下在后台启动异步事件循环?
【问题讨论】: