gpt4 book ai didi

python - twisted 和 multiprocessing.Process 如何创建僵尸?

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:52 26 4
gpt4 key购买 nike

在 python 中,使用 twisted loopingcall、multiprocessing.Process 和 multiprocessing.Queue;是否有可能创建一个僵尸进程。如果是这样,那又如何呢?

最佳答案

A zombie是一个已经完成但启动它的进程尚未注意到其完成的进程。收获它的 child 是 Twisted 进程的责任。

如果您使用 spawnProcess 开始该过程,一切都应始终按预期工作。但是,如 bug #733 in Twisted 中所述(早已修复),当您想将 Twisted 与其他生成进程的函数一起使用时,会出现大量令人讨厌的边缘情况,因为 Python 的 API 在历史上使得信号处理程序之间的协作变得困难。

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

  1. 您使用的是早于 10.1 的 Twisted 版本。
  2. 您使用的是 2.6 之前的 Python 版本。
  3. 您没有构建 Twisted 的 native 扩展模块(如果您使用的是开发结帐或解压的 tarball 而不是已安装的版本,则可以使用 python setup.py build_ext -i 修复此问题) .
  4. 您正在使用类似 popensubprocess 的模块。

希望升级 Twisted 或运行适当的命令将解决您的直接问题,但您仍应考虑使用 spawnProcess,因为它可以让您将进程输出视为 react 器事件循环中的正常事件。

关于python - twisted 和 multiprocessing.Process 如何创建僵尸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com