This Article will help you to understand different states and status of thread in Jrockit Thread dump.
Thread Status are defined in three ways.
Life States
- alive
This is typical, running thread Virtually all threads in the thread dump will be (alive). - not started
The thread was requested to start running byjava.lang.Thread.start()
, but the actual OS process has not yet started or executed far enough to pass control to the JRockit JVM. It is unlikely to see this value. Ajava.lang.Thread
object that is created, but has not hadstart()
executed, will not show in the thread dump. - terminated
This thread has finished itsrun()
and has also notified any threads joining on it, but it is still kept in the JVM internal thread structure for running threads. It is unlikely to see this value. A thread that has been terminated for a time longer than a few milliseconds will not show in the thread dump.
Run States
- blocked
This thread tried to enter a synchronized block, but the lock was taken by another thread. This thread is blocked until the lock gets released. - blocked (on think lock)
This is the same state asblocked
, but the lock in question is a thin lock. - waiting
This thread calledObject.wait()
on an object. The thread will remain there until some other thread sends a notification to that object. - sleeping
This thread calledjava.lang.Thread.sleep()
. - parked
This thread calledjava.util.concurrent.locks.LockSupport.park()
. - suspended
The thread's execution was suspended byjava.lang.Thread.suspend()
or a JVMTI agent call.
- interrupted
The user calledjava.lang.Thread.interrupt()
on this thread. - daemon
This is either JVM internal thread or a thread that was marked as a daemon thread byjava.lang.Thread.setDaemon()
. - in native
This thread is executing native code: either user-supplied JNI code or JVM internal code. - in suspend critical mode
This thread is executing JVM internal code and has marked itself assuspend critical
. Garbage collection is stopped for a specified time period. - native_blocked
This thread is executing JVM internal code and has tried to take a JVM internal lock. The thread is blocked because that lock is held by another thread. - native_waiting
This thread is executing JVM internal code and is waiting for notification from another thread about a JVM internal lock.
0 Comments