在Java虚拟机规范没有规定对线程数目的限制。它们通常受可用堆栈空间量的限制,因为每个线程都有自己的专用堆栈。(无法分配堆栈通常是在尝试创建新线程时触发OutOfMemory异常的原因。)我认为线程池和其他机制也可以用来限制线程数。(例如,Sun
Java System Portal
Server使用它来限制事务数量。)
不同的虚拟机实现可能会施加其他约束。例如,BlackBerry
OS将非系统线程限制为每个应用程序16个,总共64个。我希望其他VM制造商也施加其他限制。我会与VM制造商联系,以寻求答案。



