【问题标题】:Java stack space versus maximum server request threadsJava 堆栈空间与最大服务器请求线程
【发布时间】:2014-04-14 00:33:00
【问题描述】:

Java 堆栈空间和服务器中的最大请求线程数是否相互关联?

它们之间的关系会不会导致服务器不响应请求而挂起?

【问题讨论】:

  • 不,但可用内存和堆栈大小会限制您的线程数

标签: java tomcat threadpool


【解决方案1】:

每个线程在分配时都有自己的堆栈,并且每个堆栈可以达到的最大大小(取决于 VM 实现)。因此,例如,您的堆栈大小可能设置为 1MB,但您可能有 1000 个线程,它们之间总共有 1GB 的最大堆栈使用量。

如果堆栈溢出,通常会出现异常。我想如果你有很多线程在堆栈上持有很多状态,没有完成,也没有溢出,那么你可能会耗尽你的内存并看到类似挂起的东西。

如果你想看看这个问题https://stackoverflow.com/a/20030999/857994 有一些有趣的信息。

【讨论】:

  • 我同意你在这里所说的,现在我的问题是,当这种情况发生时,我们是否应该开始从异常中获取内存。
猜你喜欢
  • 2011-07-27
  • 2012-05-28
  • 2014-08-10
  • 2015-01-01
  • 1970-01-01
  • 2019-03-07
  • 2021-10-28
  • 1970-01-01
  • 2017-12-11
相关资源
最近更新 更多