Xss为1个线程设置线程堆栈大小,所有线程堆栈大小的限制是多少
Xss set thread stack size for 1 thread, what is the limitation for all thread's stack size
我知道如何使用 -Xss 为 java 线程设置堆栈大小,我们在我们的产品中使用它。
但是当我们的应用程序中使用了很多线程时,并且设置了 -Xss(我们设置为 512k 以供我们使用)。我们会遇到报错unable to create new native thread。
它应该与堆栈大小有关,因为当我们设置 -Xss256k 时,错误消失了。
我的问题是针对 1 个线程,Xss 设置堆栈大小,但是对于所有线程堆栈大小呢?
整个线程的总堆栈内存大小的限制是什么?
我没有找到这样的 JVM 设置,而我们现在似乎确实遇到了这样的问题。
-Xss
设置为每个新线程堆栈保留的 默认值 虚拟内存量。 (也就是说,对于每个未通过其构造函数指定显式堆栈大小的新线程。)
没有选项可以限制所有线程的组合堆栈大小。
如果将 -Xss
从 512K 降低到 256K 使您的程序能够创建更多线程,那么您的程序一定会创建大量线程。
所有这些线程都在做什么?
您确定在线程池中使用有限数量的线程无法解决问题吗?
我知道如何使用 -Xss 为 java 线程设置堆栈大小,我们在我们的产品中使用它。
但是当我们的应用程序中使用了很多线程时,并且设置了 -Xss(我们设置为 512k 以供我们使用)。我们会遇到报错unable to create new native thread。 它应该与堆栈大小有关,因为当我们设置 -Xss256k 时,错误消失了。
我的问题是针对 1 个线程,Xss 设置堆栈大小,但是对于所有线程堆栈大小呢?
整个线程的总堆栈内存大小的限制是什么?
我没有找到这样的 JVM 设置,而我们现在似乎确实遇到了这样的问题。
-Xss
设置为每个新线程堆栈保留的 默认值 虚拟内存量。 (也就是说,对于每个未通过其构造函数指定显式堆栈大小的新线程。)
没有选项可以限制所有线程的组合堆栈大小。
如果将 -Xss
从 512K 降低到 256K 使您的程序能够创建更多线程,那么您的程序一定会创建大量线程。
所有这些线程都在做什么?
您确定在线程池中使用有限数量的线程无法解决问题吗?