我正在开发一个主要由服务组成的应用程序,这些服务是带有自定义运行循环的线程。
其中一项服务需要生成子进程,我不太明白它是否有效。官方documentation是模棱两可的。也就是说,asyncio 支持从不同线程运行子进程
,并且事件循环必须在同一部分的主线程中运行
。
如果事件循环必须在主线程中运行,如何从不同线程运行子进程?
最佳答案
文档说:
- 您应该在主线程中运行事件循环。
- 在主线程中,请在程序开始时调用
asyncio.get_child_watcher()
。
之后,您可以从非主线程创建子进程。
UPD
从 Python 3.8 asyncio 开始,没有上述限制。
一切都能正常工作。
关于python - asyncio 是否支持从非主线程运行子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915607/