【发布时间】:2010-10-14 06:25:58
【问题描述】:
我正在使用 Python 的 Jython 2.51 实现来编写一个脚本,该脚本通过subprocess.Popen 重复调用另一个进程,并使用PIPE 将stdout 和stderr 传递给父进程,并将stdin 传递给父进程子进程。经过数百次循环迭代,我似乎用完了文件描述符。
Python subprocess documentation 几乎没有提到释放文件描述符,除了 close_fds 选项之外,没有很清楚地描述(为什么首先要打开除了 0、1 和 2 之外的任何文件描述符? )。我假设在 CPython 中,引用计数会处理资源释放问题。在 Jython 中使用 Popen 对象完成后,确保释放所有描述符的正确方法是什么?
编辑:以防万一,这是一个多线程程序,因此有多个Popen 进程同时运行。
【问题讨论】:
标签: python file-io resources jython popen