【问题标题】:Check the ThreadStackSize programmatically?以编程方式检查 ThreadStackSize?
【发布时间】:2012-03-10 20:30:14
【问题描述】:

有没有办法以编程方式检查 ThreadStackSize?

我在 Jboss 7 的 jboss.conf 文件中有以下代码。

 # Java Additional Parameters
wrapper.java.additional.1=-XX:MaxPermSize=512m
wrapper.java.additional.2=-Dorg.jboss.resolver.warning=true
wrapper.java.additional.3=-Dsun.rmi.dgc.client.gcInterval=3600000
wrapper.java.additional.4=-Dsun.rmi.dgc.server.gcInterval=3600000
wrapper.java.additional.5=-Djboss.modules.system.pkgs=org.jboss.byteman
wrapper.java.additional.6=-Dorg.tanukisoftware.wrapper.WrapperManager.mbean=false
wrapper.java.additional.7=-Dlogging.configuration=file:%JBOSS_HOME%/standalone/configuration/logging.properties
wrapper.java.additional.8=-Djava.util.logging.manager=org.jboss.logmanager.LogManager
wrapper.java.additional.9=-Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl

**wrapper.java.additional.10=-XX:ThreadStackSize=256k**

有没有办法确认 ThreadStackSize 是否以编程方式设置为 256k?

【问题讨论】:

  • 我认为您不应该将“k”放在 ThreadStackSize 的参数中。

标签: java multithreading jboss7.x java.util.concurrent


【解决方案1】:

问题在于 -XX 参数是特定于实现的,因此核心 Java 类无法将该信息直接公开为简单的getMaxStackSize()

java.lang.management 包中有很多有用的指标,例如MemoryPoolMXBean。我没有尝试特别寻找堆栈大小,但是如果您仔细研究一下,您可能会找到它。

【讨论】:

    【解决方案2】:

    在这里阅读:Update a java thread's stack size at runtime

    您可能会尝试使用反射来获取stackSize 变量,看看这是否会给您带来任何有用的信息。小心:

    /*
     * The requested stack size for this thread, or 0 if the creator did
     * not specify a stack size.  It is up to the VM to do whatever it
     * likes with this number; some VMs will ignore it.
     */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 2012-06-09
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多