Xss为1个线程设置线程堆栈大小,所有线程的堆栈大小的限制是什么

时间:2015-08-18 08:26:35

标签: java multithreading stack jvm-arguments

我知道如何使用-Xss为java线程设置堆栈大小,我们在产品中使用它。

但是当我们的应用程序中使用了大量线程时,并且设置了-Xss(我们将其设置为512k)。我们将遇到错误报告无法创建新的本机线程。   它应该与堆栈大小有关,因为当我们设置-Xss256k时,错误消失了。

我的问题是1个线程,Xss设置堆栈大小,但是所有线程堆栈大小怎么样? 整个Thread的总堆栈内存大小有什么限制? 我没有找到这样的JVM设置,而我们现在似乎遇到了这样的问题。

1 个答案:

答案 0 :(得分:4)

-Xss设置为每个新线程的堆栈保留的默认虚拟内存量。 (也就是说,对于每个没有通过其构造函数给出显式堆栈大小的新线程。)

没有选项可以限制所有线程的组合堆栈大小。

如果将-Xss从512K设置为256K使程序能够创建更多线程,那么您的程序必须创建大量线程。

所有这些线程都在做什么?

您确定在线程池中使用有限数量的线程无法解决问题吗?