Java中的许多线程是否存在硬限制?

时间:2011-03-25 20:27:04

标签: java multithreading

Some sources说,即使你没有操作系统上限和无限制的RAM,你对Java中的一些线程(如15k或30k)也有一个硬限制。我还听说,在Java 7中,这个限制被解除了。这两个陈述都是真的吗?

1 个答案:

答案 0 :(得分:4)

Java Virtual Machine Specification未指定线程数限制。它们通常受可用堆栈空间量的限制,因为每个线程都有自己的私有堆栈。 (无法分配堆栈通常会在尝试创建新线程时触发OutOfMemory异常。)我相信线程池和其他机制也可用于限制线程数。 (例如,Sun Java System Portal Server使用它来限制事务数量。)

不同的虚拟机实现可能会施加其他约束。例如,BlackBerry OS将非系统线程限制为每个应用程序16个,总计64个。我预计其他VM制造商也会施加额外的限制。我会咨询VM制造商以获得答案。