0

JVMTI 提供事件ContendedMonitorEnterContendedMonitorEntered检测与使用相关的事件synchronizedsynchronized不是别的,而是一个可重入锁。

现在我还想跟踪与锁结构相关的事件:ReentrantLock. 我可以挂钩它lock()unlock()事件的方法进入/退出。但是,这些事件挂钩不提供有关调用它们的对象的任何信息。因此我无法区分不同的ReentrantLock,因此无法记录有关当前锁定哪个锁的任何信息。

有没有其他方法可以跟踪这个?

4

1 回答 1

0

您必须对自己加载的类进行检测。这相当复杂,但幸运的是我们有 java_crw_demo.c,它与 JDK 一起提供(以及其他有用的示例)。在那里,您可以找到一个执行一些基本类型检测的实现。您可以轻松修改它来完成这项工作。我现在正在为一些学术学生项目做这个。

于 2011-09-08T19:51:30.063 回答