Windows上的资源限制?

Mat*_*ner 10 python windows posix ulimit setrlimit

什么是与Python resource模块和POSIX 在Unix系统上公开的资源限制机制的Windows等价物setrlimit

具体来说,我将子进程的处理器时间限制为几秒钟.如果它未在约束内完成,则终止.

Rol*_*ith 4

AFAIK,没有可移植的方法来获取有关 Python 中子进程使用的处理器时间量的信息。但是subprocess模块所做的(假设您使用 启动子进程subprocess.Popen,这是推荐的)为您提供的是 中子进程的进程 ID Popen.pid。您可以在 Windows 上执行的操作是重复运行tasklist(请参阅手册subprocess.check_output,并使用 PID 作为过滤器从其输出中提取有关子进程的信息。

一旦子进程有足够的 CPU 时间,并且如果您曾经subprocess.Popen()启动过子进程,则可以使用该Popen.kill方法来终止它。

但我认为在使用计时器指定的挂机时间秒数后终止子进程会更容易。因为如果子进程在没有使用 CPU 时间的情况下挂起(无论出于何种原因),那么等待它消耗 CPU 时间的 python 程序也会挂起。