如何在每个线程的基础上限制 Java 的堆栈大小?
Posted
技术标签:
【中文标题】如何在每个线程的基础上限制 Java 的堆栈大小?【英文标题】:How to limit Java's stack size on a per-thread basis? 【发布时间】:2020-02-09 01:19:08 【问题描述】:标题问了一切,真的。如果无法直接在 JVM 中设置单个线程的堆栈大小,是否有替代方案?
【问题讨论】:
@AndyTurner “任何替代方案”,例如模拟堆栈大小上限的方法,例如使用工具或监视堆栈,并在它变得太大时使用Thread.stop
...最好不要那样,因为@987654322 @ 已弃用。如果您被提及两次,我们深表歉意。
【参考方案1】:
Use the docs:
public Thread(ThreadGroup group, Runnable target, String name, long stackSize)
...
stackSize - 新线程所需的堆栈大小,或者为零 表示该参数将被忽略。
正如Jacob G. 所指出的,它在同一文档中说(带有原始重点):
在某些平台上,
stackSize
参数的值可能没有任何作用。
【讨论】:
链接文档中的小注释:“在某些平台上,stackSize 参数的值可能没有任何影响。”以上是关于如何在每个线程的基础上限制 Java 的堆栈大小?的主要内容,如果未能解决你的问题,请参考以下文章