Java VM可以支持多少个线程?这会因供应商而异吗?通过操作系统?其他因素?
这取决于您正在使用的CPU,操作系统,其他正在执行的操作,您正在使用的Java版本以及其他因素。我已经看到Windows服务器在关闭计算机之前具有> 6500个线程。当然,大多数线程没有做任何事情。一旦计算机遇到了大约6500个线程(使用Java),整个计算机就会开始出现问题并变得不稳定。
我的经验表明,Java(最新版本)可以愉快地消耗与计算机本身可以承载的尽可能多的线程,而不会出现问题。
当然,您必须有足够的RAM,并且必须以足够的内存来启动Java,才能完成线程正在做的所有事情,并为每个线程拥有一个堆栈。任何具有现代CPU(最近几代的AMD或Intel)和1-2 Gig内存(取决于OS)的机器都可以轻松地支持具有数千个线程的JVM 。
如果您需要一个比这个更具体的答案,那么最好的方法是剖析。