gpt4 book ai didi

java - tomcat 6 上的 CompilerThread 状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:07 25 4
gpt4 key购买 nike

为 tomcat 进程运行线程转储我只注意到以下内容:

"CompilerThread0" daemon prio=10 tid=0x02b57400 nid=0xe0c waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

我的理解是 CompilerThread(anynumber) 由 JVM 运行,用于将字节码编译为 native 代码,但我想对此进行确认。但我主要担心的是线程说处于“等待条件”但后来声明为 RUNNABLE 状态。我误会了什么?最后 [0x00000000] 的含义是什么?

谢谢

最佳答案

所以逐个字段分割:

  1. "CompilerThread0" - Tomcat 具有用于编译 JSP 的编译器线程。 JSP 在第一次被访问时被编译成 java 类。
  2. daemon - 这是一个守护线程,以便在您选择退出时不会让您的应用程序保持 Activity 状态
  3. prio=10 - 最高优先级,以便 JSP 编译优先于其他请求。
  4. nid=0xe0c - 实际上不知道。 ;)
  5. waiting on condition [0x0000000] - 线程当前处于阻塞状态,等待有人发出信号唤醒它并做某事。与 nid 一样,我实际上不确定 [0x000000] 指的是什么。我怀疑如果我们正在等待的话,它会保存对象监视器的地址。
  6. java.lang.Thread.State: RUNNABLE - 等待条件的线程仍被视为 RUNNABLE

首先让它感到困惑的一件事是线程即使在等待也是可运行的。这是违反直觉的,但它与 JVM 区分条件和对象监视器(例如用于等待/通知的机制)这一事实有关。

希望对您有所帮助!

关于java - tomcat 6 上的 CompilerThread 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com