Java虚拟机可以维护的最大线程数是多少?
我没有在原始问题中解释这一点,但我试图对JVM进行基准测试,并希望尝试查看它可以同时维护多少个线程.
在循环中创建线程直到抛出异常是一个选项,但是,我想知道是否有更好的方法来执行此操作.
flo*_*lob 33
您的操作系统和硬件配置会受到一些限制.
要增加并发线程数,您应该降低默认的stacksize java -Xss 64k.
ulimit -a 将为您提供用户进程和内存的配置限制cat /proc/sys/kernel/pid_max- 最多32k个进程.cat /proc/sys/kernel/threads-maxJay*_*Jay 10
编写一个创建新线程的循环,直到它爆炸为止是确定的最终方法.在实际死亡之前,您可能会看到性能严重下降.
我不知道JVM中是否有任何配置参数或其他内置限制.我在练习中从未遇到过限制.当然,迟早你会耗尽内存,也许是其他一些资源.
我怀疑线程数本身没有限制,而是与线程相关的资源.也就是说,你可能会看到你可以拥有10,000个线程,如果它们只运行一个只有几个字节数据的小类,但当它们各自拥有一千万个字符串的数组时,它会快速下降.