问题描述
这有时会导致挂起过程。我了解到,将这两者混合是一个坏主意,因为分叉的进程正在等待不存在的线程放弃其锁:
- https://pythonspeed.com/articles/python-multiprocessing/
- https://rachelbythebay.com/w/2011/06/07/forked/
我正在考虑重写我的代码以代替asyncio
来执行后台任务,但是我不确定这是否解决了我的问题,因为我不熟悉asyncio
在罩。 asyncio
是否使用锁来执行上下文切换?分叉程序是否继承了所有协程?分叉的过程会以某种方式卡住吗?
链接的文章建议了一些解决此问题的替代方法,这些替代方法不适用于我的情况:
- 使用spawn而不是fork来不复制当前内存,而是以全新的过程开始
- 在旋转线程之前分叉
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)