Uzyskanie identyfikatora wątku dla wątków Java w systemie Linux

Mam aplikację Java, w której tworzone są niektóre wątki (przeznew Thread()). Za pomocąps Widzę, że mają różne identyfikatory wątków (kolumna LWP) i chciałbym uzyskać te identyfikatory z poziomu aplikacji Java.

W większości postów związanych z tym tematem znalazłem (np.ten), rozwiązaniem jest użycieManagementFactory.getRuntimeMXBean().getName().

Jednak użycie tej metody daje mi PID głównego wątku (nawet jeśli wywołam go z jednego z wątków), więc tak naprawdę nie rozwiązuje mojego problemu.

Czy istnieje sposób na uzyskanie identyfikatora wątku dla każdego pojedynczegoThread utworzony przez aplikację?

Czy byłoby możliwe użycie JNI, aby to osiągnąć? Gdybym mógł jakoś połączyć się z funkcją C, w której mógłbym zadzwonićsyscall(__NR_gettid)to mogłoby rozwiązać mój problem. Naprawdę nie zależy mi na przenośności, więc jestem całkowicie w porządku z rozwiązaniem, które działa tylko na komputerze z Linuksem.

AKTUALIZACJA: Naprawdę rozwiązałem swój problem za pomocą JNI. Szczegóły wyjaśniono w mojej odpowiedzi. Dziękujemy wszystkim za sugestie / komentarze.

questionAnswers(3)

yourAnswerToTheQuestion