作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何限制某人可以创建的线程数量?我所做的是运行某人的代码(类似于 ideone),并希望限制他可以生成的线程数。怎么做?一些 jvm 设置或其他东西?
编辑我添加了更多具体信息,因为有些人没有理解我的观点。
最佳答案
在 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/
我是一名优秀的程序员,十分优秀!