Python 的 resource
在 Unix 系统上公开的资源限制机制在 Windows 中有哪些等价物?模块和 POSIX setrlimit
?
具体来说,我将子进程的处理器时间限制为几秒钟。如果未在约束内完成,则终止。
最佳答案
据我所知,没有可移植的方法来获取有关 Python 中子进程使用的处理器时间量的信息。但是 subprocess
模块所做的(假设您使用 subprocess.Popen
启动子进程,这是推荐的)给您的是 中子进程的进程 ID Popen.pid
。您可以在 Windows 上执行的操作是重复使用 subprocess.check_output
运行 tasklist
(参见 manual),并从其输出中提取有关子进程的信息,使用 PID 作为一个过滤器。
一旦子进程有足够的 CPU 时间并且如果您使用 subprocess.Popen()
启动子进程,您可以使用 Popen.kill
杀死它的方法。
但我认为在指定的墙时间秒数后使用计时器终止子进程会更容易。因为如果子进程在没有使用 CPU 时间的情况下挂起(无论出于何种原因),那么等待它的 python 程序也会消耗 CPU 时间。
关于python - Windows 上的资源限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10892258/