Thread相关学习之三- JavaThreadState 和 JVMTIThreadState 转换

JavaThreadState 和 JVMTIThreadState 转换

下面接着看下jvmti.xml中对于JavaThreadState 和 JVMTIThreadState的转换定义:

The following definitions are used to convert  thread state to java.lang.Thread.State style states.
    
      
        Mask the state with this before comparison
      
      
        java.lang.Thread.State.NEW
      
      
        java.lang.Thread.State.TERMINATED
      
      
        java.lang.Thread.State.RUNNABLE
      
      
        java.lang.Thread.State.BLOCKED
      
      
        java.lang.Thread.State.WAITING
      
      
        java.lang.Thread.State.TIMED_WAITING
      
    

继续用表格处理,对比下:

序号 JavaThreadState JVMThreadState Value(10进制)
1 java.lang.Thread.State.NEW 0
2 java.lang.Thread.State.TERMINATED JVMTI_THREAD_STATE_TERMINATED 0x0002 = 2
3 java.lang.Thread.State.RUNNABLE JVMTI_THREAD_STATE_ALIVE 按位或 JVMTI_THREAD_STATE_RUNNABLE 0x0001 按位或 0x0004 = 5
4 java.lang.Thread.State.BLOCKED JVMTI_THREAD_STATE_ALIVE 按位或JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER 0x0001 按位或0x0400 = 1025
5 java.lang.Thread.State.WAITING JVMTI_THREAD_STATE_ALIVE 按位或 JVMTI_THREAD_STATE_WAITING 按位或JVMTI_THREAD_STATE_WAITING_INDEFINITELY 0x0001 按位或 0x0080 按位或 0x0010 = 145
6 java.lang.Thread.State.TIMED_WAITING JVMTI_THREAD_STATE_ALIVE 按位或JVMTI_THREAD_STATE_WAITING 按位或JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT 0x0001 按位或 0x0080 按位或 0x0020 = 161

你可能感兴趣的:(Thread相关学习之三- JavaThreadState 和 JVMTIThreadState 转换)