The thread metrics shown in the Profiler’s Threads tab are collected independently of the server requests.
The values shown in the table are cumulative metrics for:
• CPU time spent in OS kernel
• CPU time spent in user mode
• Time spent in waiting state (in Object.wait(…))
• Time spent in blocked mode (lock contention for “synchronized methods or blocks)
The values can only increase and they correspond to the usage since the thread creation.
The graph shows the difference between the values of these metrics between the last two thread snapshots. Graph makes little sense unless you enable automatic update with a constant frequency.
There is no way to associate this blocked time with the server requests.
When a thread is returned to a pool its ID doesn’t change.