【发布时间】:2015-10-31 13:07:19
【问题描述】:
对于用 Java 编写的多线程应用程序,有没有办法在 Linux 上找到 Java 线程和 POSIX 线程之间的映射?
根据我的研究,在 Java 的 OpenJDK 中创建的每个用户线程与通过 NPTL 的内核线程之间存在 1:1 的对应关系。假设以上是正确的,需要做些什么来挂钩到 JVM 的本机线程委托机制以获取每个线程的 POSIX id?
获取每个线程的 ID 的动机是检查每个线程的亲和性,以在运行时以指定的采样率获取每个线程的 CPU 时间和上下文切换时间。
虽然不是一个非常有经验的 C/C++ 开发人员,但出于学习目的,我更愿意用本机代码编写此代码,而不是使用具有更广泛接口的更通用实用程序而不是必要的。
非常感谢任何帮助。
【问题讨论】:
-
也许你可以确定属于正在运行的java进程的线程。
标签: java multithreading pthreads scheduling