目录
Java虚拟机最多支持多少个线程?跟虚拟机开发商有关么?跟操作系统呢?还有其他的因素吗?
关于JVM系列面试知识点总结了一个思维导图,分享给大家
McGovernTheory在StackOverflow提了这样一个问题:
Java虚拟机最多支持多少个线程?跟虚拟机开发商有关么?跟操作系统呢?还有其他的因素吗?
Eddie的回答:
这取决于你使用的CPU,操作系统,其他进程正在做的事情,你使用的Java的版本,还有其他的因素。我曾经见过一台Windows服务器在宕机之前有超过6500个线程。当然,大多数线程什么事情也没有做。一旦一台机器上有差不多6500个线程(Java里面),机器就会开始出问题,并变得不稳定。
以我的经验来看,JVM容纳的线程与计算机本身性能是正相关的。
当然了,你要有足够的本机内存,并且给Java分配了足够的内存,让每个线程都可以拥有栈(虚拟机栈),可以做任何想做的事情。任何一台拥有现代CPU(AMD或者是Intel最近的几代)和1-2G内存(取决于操作系统)的机器很容易就可以支持有上千个线程的Java虚拟机。
如果你需要一个更精确的答案,最好是自己做压测。
Charlie Martin的回答:
这里有很多的参数(可以设置)。对于特定的虚拟机,都