Python的资源中的软硬限制

问题描述 投票:0回答:1

[python]的resource中的[[soft和hard限制之间的实际区别是什么?

例如,这样做之间有什么区别:

resource

最后,是的,我已经阅读了软限制和硬限制的文档,但实际上仍然不了解有什么区别:

可以使用下面描述的setrlimit()函数来限制资源的使用。每个资源由一对限制控制:一个软限制和一个硬限制。软极限是当前极限,并且可以随着时间的流逝而降低或升高。软限制永远不能超过硬限制。硬限制可以降低到大于软限制的任何值,但不能提高。 (只有具有超级用户有效UID的进程才能提出硬限制。)
python resources python-internals
1个回答
0
投票
CPython的import resource soft_limit,hard_limit=resource.getrlimit(resource.RLIMIT_DATA) # set soft limit resource.setrlimit(resource.RLIMIT_DATA, (1024,hard_limit)) # set soft and hard limit resource.setrlimit(resource.RLIMIT_DATA, (1024,1024)) 显然使用了resource中的setrlimit。通过查看GNU的libc手册,可以说出当前(软性)和硬性限制:

与资源相关联的每个进程有两个限制:

当前限制

当前限制是系统不允许使用的值超过。也称为“软限制”,因为受限制的过程通常可以随意提高当前限制。

最大限制

最大限制是允许进程设置其当前限制的最大值。它也被称为“硬限制”,因为流程无法绕开它。进程可以降低自己的最大限制,但是只有超级用户可以增加最大限制。

所以tl:dr是软的,因为一个过程可以更改限制,而辛苦的是因为它不能更改,区别在添加的文档的最后一个括号中指出:

((只有具有超级用户有效UID的进程才能提出硬限制。)
© www.soinside.com 2019 - 2024. All rights reserved.