If you looking for more information about process I/O access and cpu usage maybe you can look iotop. The app provide information about process like top but for Input/Output information. Iotop use information from /proc files , example here for the process 16528.
I Know it's possible to call it in bash mode like top.
iotop -botqqq --iter=3 >> /var/log/iotop
You can look dstat too but it's like top , global for the system not specific for a process.
You don't have thread lock information.
If you look only for java maybe look jconsole it uses ThreadMXBean getThreadCpuTime() function.