Thread States shown by HPjmeter

[Back]

Lock Contention
Time wasted trying to acquire a Java lock while it was acquired by another thread.
CPU
Time spent running on any of the computer's processors. This includes Java code and the native code (if any) executed by this thread.
I/O
Time spent while executing a synchronous input or output operation called directly from Java code.
Sleeping
Time spent while the thread was suspended by the java.lang.Thread.sleep method.
Waiting
Time spent while the thread was suspended by the java.lang.Object.wait method.
Native Idle
Time spent while the thread was sleeping or running an I/O operation invoked from non-Java code. HPjmeter is not able to identify the exact state of the thread in such circumstances, since the native code remains unprofiled.
Unknown
The thread state could not be determined. Currently, the thread states can be reported only for the -Xeprof or -eprof options available for HP-UX 11.x.
Starvation
The time wasted while the thread was theoretically able to run (was in the "runnable" state), but actually did not run. The reasons for starvation can be within the Java VM or within the operating system. Most typical situations resulting in starvation are listed below:
  • The thread was waiting on an internal VM (non-Java) lock (the heap lock used for object allocations is the most likely culprit).
  • Garbage collector was running. During garbage collecting the Java threads do not run.
  • There were more threads ready to run (including all applications present in the system) than the number of available CPUs.
  • The operating system (e.g. virtual memory) overhead or failure to schedule the threads "fairly".

[Back]