首页 > 解决方案 > Java中的堆栈线程是什么?

问题描述

我看到 App ENV 选项通过 java buildpack 中的内存计算器配置“-stackThreads=250”,用于云代工应用程序。这些 stackThreads 是什么以及它的真正作用。它如何通过更改此值来影响应用程序。有些人互换使用“堆栈线程”和“线程堆栈”这个词。是这样还是不同(虽然我理解线程堆栈的定义)

cf set-env my-application JBP_CONFIG_OPEN_JDK_JRE '{ jre: { version: 11.+ }, memory_calculator: { stack_threads: 25 } }'

标签: javamultithreadingcloudcloud-foundry

解决方案


-stackThreads是 Buildpack 内存计算器的参数,而不是 JVM。这是在估计由于线程堆栈而导致的内存使用时将使用的并发线程数。线程堆栈(广义上)是分配给每个线程中堆栈的内存量,由-Xss选项设置。一般来说,如果线程堆栈更大,或者更多线程正在运行,则总体内存使用量会增加。

据我所知,JVM本身是没有-stackThreads选项的,所以在运行应用程序的时候在JVM上设置是没有效果的。事实上,它很可能在命令行中被视为错误。我认为“堆栈线程”在 Java 中甚至不是一个有意义的术语。


推荐阅读