Obtención del ID de hilo para hilos de Java en Linux

Tengo una aplicación Java donde se crean algunos hilos (a través denew Thread()). Utilizandops Puedo ver que tienen diferentes ID de hilo (columna LWP) y me gustaría obtener esos ID dentro de la aplicación Java.

En la mayoría de las publicaciones relacionadas con este tema que he encontrado (por ejemplo,éste), la solución es usarManagementFactory.getRuntimeMXBean().getName().

Sin embargo, usar ese método me da el PID del subproceso principal (incluso si lo llamo desde uno de los subprocesos), por lo que realmente no está resolviendo mi problema.

¿Hay alguna manera de obtener el ID de hilo para cada unoThread creado por una aplicación?

¿Sería posible usar JNI para lograrlo? Si de alguna manera pudiera interactuar con una función C donde podría llamarsyscall(__NR_gettid), eso podria solucionar mi problema Realmente no me importa la portabilidad, así que estoy totalmente de acuerdo con una solución que solo funcionaría para una máquina Linux.

ACTUALIZAR: Realmente he resuelto mi problema usando JNI. Los detalles se explican en mi respuesta. Gracias a todos por sus sugerencias / comentarios.

Respuestas a la pregunta(3)

Su respuesta a la pregunta