gpt4 book ai didi

java - 限制 JVM 使用的线程数

转载 作者:IT王子 更新时间:2023-10-29 00:26:40 26 4
gpt4 key购买 nike

如何限制某人可以创建的线程数量?我所做的是运行某人的代码(类似于 ideone),并希望限制他可以生成的线程数。怎么做?一些 jvm 设置或其他东西?

编辑我添加了更多具体信息,因为有些人没有理解我的观点。

  1. 一些随机的人给我发送了我的计算机将要执行的代码
  2. 代码必须在最多使用 k 个线程内执行
  3. 一切都必须自动化 - 像 SPOJ、ideone 等一样工作。

最佳答案

在 Linux 上,您可以以单独的用户身份运行该程序,并使用 shell 命令 ulimit -u nprocs 来限制该用户的线程(进程)数量。如果试图超过限制,the JVM will throw an OutOfMemoryError .

但是为什么要这样做呢?您是否担心程序会占用计算机的所有 CPU 资源?如果是这样,您可能需要考虑以较低的调度优先级运行 JVM,使用 nice ,因此其他进程将优先使用 CPU:

 NPROCS=100 # for example
NICENESS=13 # for example
ulimit -u $NPROCS
nice -n $NICENESS java ...

以这种方式使用nice应该降低所有线程的优先级,但是it is not clear that it does so for Linux .

关于java - 限制 JVM 使用的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17341883/

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