扭曲和多处理过程制造僵尸?

2024-05-12 14:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,使用twisted loopingcall,多处理过程,和多处理队列;是否可以创建僵尸进程。如果是,那怎么办?在


Tags: 队列进程twisted僵尸loopingcall
1条回答
网友
1楼 · 发布于 2024-05-12 14:34:48

zombie是一个已经完成的进程,但是启动它的进程尚未注意到它的完成。这是扭曲过程的责任,收获它的孩子。在

如果使用^{}启动该过程,则所有操作都应始终按预期工作。然而,正如bug #733 in Twisted(这一点早就被修复了)中所描述的那样,当您希望将Twisted与生成进程的其他函数一起使用时,会出现大量令人讨厌的边缘情况,因为Python的API在历史上使信号处理程序之间很难协作。在

在最新版本的代码中都已修复,但我相信在以下情况下仍可能遇到此错误:

  1. 您使用的是Twisted 10.1之前的版本。在
  2. 您使用的Python版本早于2.6。在
  3. 您没有构建Twisted的本机扩展模块(如果您使用的是开发签出或解包的tarball而不是已安装的版本,则可以使用python setup.py build_ext -i来解决这个问题)。在
  4. 您使用的模块是popen或{}。在

希望升级Twisted或运行适当的命令可以解决您当前的问题,但是您仍然应该考虑使用spawnProcess,因为这样可以将进程输出视为reactor事件循环中的正常事件。在

相关问题 更多 >