sách gpt4 ai đã đi

java - 来自 pthread_self() 的 Pthread id 与来自 dtrace 脚本的数据不匹配

In lại 作者:塔克拉玛干 更新时间:2023-11-01 22:58:44 25 4
mua khóa gpt4 Nike

我正在使用来自 đây 的这个 dtrace 脚本尝试查找 Java 程序的线程何时发生上下文切换。

我正在尝试将从脚本中收集的数据与从正在运行的程序中收集的跟踪数据(例如方法进入/退出之类的东西)相匹配。我使用一个简短的 JNI 方法获取正在运行的线程的 pthread id,该方法仅返回 pthread_self() 的值。

我遇到的问题是我通过调用 pthread_self() 获得的线程 ID 与我在 dtrace 脚本中获得的任何线程 ID 完全不同。我想知道这是否是因为我错误地调用了 pthread_self() 因为它返回一个指针,但是很难找到关于 pthread_t 在 mac osx 上实际是什么的信息。

1 Câu trả lời

所以我会回答我自己的问题,dtrace 中的 curthread 和 tid 变量是内核线程结构的指针值,为了获取这些值以将 dtrace 与用户空间线程数据进行比较,我必须创建一个内核扩展来获取用户空间中线程的这些内部值。

总的来说,这是一个坏主意,因为它不可移植,如果内核被更改很容易损坏,并且可能存在安全风险。不幸的是,我还没有找到另一种方法来实现我想要的。

关于java - 来自 pthread_self() 的 Pthread id 与来自 dtrace 脚本的数据不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1332573/

25 4 0
Bài viết được đề xuất: java - JDBC 瘦甲骨文 11g
Bài viết được đề xuất: java - 如何在 Java 3D 中旋转对象?
Bài viết được đề xuất: Khung/công cụ Java cho các vấn đề tính toán phân tán đơn giản
Bài viết được đề xuất: java - 如何等到 JComponent 完全绘制完成?
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com