我知道如何使用-Xss设置Java线程的堆栈大小,并将其用于我们的产品。Xss为1个线程设置线程堆栈大小,对于所有线程的堆栈大小有什么限制
但是,当我们的应用程序中使用了很多线程,并设置了-Xss(我们将其设置为512k)。我们将遇到错误报告,无法创建新的本地线程。 它应该与堆栈大小有关,因为当我们设置-Xss256k时,错误消失了。
我的问题是针对1个线程,Xss设置堆栈大小,但对于所有线程堆栈大小如何?
整个Thread的堆栈内存大小是多少? 我没有找到这样的JVM设置,而我们现在似乎遇到了这样的问题。
所有线程的堆栈大小都没有Java设置。当本地平台告诉您无法再创建更多线程时,您会看到它什么时候用完。 – Kayaman
我建议你看看一种优化线程的方式来减少堆栈使用,如果这是你的限制。我假设你不能只添加更多的内存。 –
明白了,谢谢。所以它可能与创建线程时下划线OS的能力有关。每个线程使用包括堆栈在内的资源,并且在某些情况下,不能创建更多线程。在我们的应用程序示例中,当堆栈大小为512k并且创建100个线程无效时,堆栈大小为256k的相同线程工作。我们正在编写负载测试工具,并且每个线程的内容均由我们的用户指定,因此无法优化线程。在这种情况下,似乎只有特殊的JVM实现和相关的操作系统限制。 –