java - 如何检查线程是否在IntelliJ中容纳监视器?

标签 java multithreading intellij-idea ide intellij-plugin

在处理IntelliJ时,我无法检查线程是否持有锁。

在Eclipse GUI上,线程上有一个类似于lock的图标,告诉我们它持有该lock

在下面的代码快照中,我的线程位于notifyElementAdded()并持有锁,但是,在线程堆栈中,没有这样的Icon或Intellij的暗示

所以我的问题是如何在IntelliJ GUI上进行检查。

enter image description here

最佳答案

实际上,Java-Thread中的Thread.holdsLock()类具有 boolean 属性。
要获取保存监视器的线程的名称,可以使用下面的代码示例:

public static long getMonitorOwner(Object obj)
{
    if (Thread.holdsLock(obj)) 
    {
        return Thread.currentThread().getId();
    }
}

关于java - 如何检查线程是否在IntelliJ中容纳监视器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61557491/

相关文章:

java - 如何通过断言失败

java - 什么是类级同步。如果该类被一个线程锁定在同一其他线程上,则可以访问该类的其他方法

ide - 详细的 AspectJ 编译器输出

java - 如何在 Java 项目的 IntelliJ 中使用 Dagger2

java - Angular - 从 Spring 接收 JSON

java - 将图像设置为 JPanel 背景的最简单方法

java - 安卓发布版本

python - 使用 python 进行线程/While 循环

c++ - 在 C++ 中使用 pthread_exit() 是否安全?

java - Hibernate 禁用日志记录