必ずしも抽象化を破る必要はありません。POSIX は、スレッドごとの CPU 時間を測定する方法を指定しています。そして、Windowsがあります:)
ホットスポット ソースを検索すると、次のように表示されます。
ホットスポット/src/share/vm/runtime/os.hpp
// JVMTI & JVM monitoring and management support
// The thread_cpu_time() and current_thread_cpu_time() are only
// supported if is_thread_cpu_time_supported() returns true.
// They are not supported on Solaris T1.
hotspot/src/os/linux/vm/os_linux.cppには、この目的で使用されているclock_gettimeとともにpthread_getcpuclockidが表示されます
hotspot/src/os/windows/vm/os_windows.cppでは、GetThreadTimesが使用されていることがわかります。