服务器中的Java堆栈空间和最大请求线程数是否相互关联?
它们之间的关系是否会导致服务器无法响应请求并挂起?
答案 0 :(得分:1)
在分配时,每个线程都有自己的堆栈,并且每个堆栈可以达到最大大小(取决于VM实现)。因此,您的堆栈大小可能设置为1MB,但是您可能有1000个线程,它们之间总共最多可以使用1GB的堆栈。
如果堆栈超支,通常会出现异常。我想如果你有很多线程在堆栈上持有很多状态,那些没有完成,而不是超越,那么你可能会耗尽你的记忆并看到类似挂起的东西。
如果你想看一下这个问题,https://stackoverflow.com/a/20030999/857994有一些有趣的信息。