Java教程

Java holdLock()方法

如果当前线程在指定对象上持有监视器锁,则线程类的 holdLock()方法返回true。

语法

public static boolean holdsLock(Object obj)

参数

obj : 它定义要在其上测试锁所有权的对象

返回

当且仅当当前线程在指定对象上持有监视器锁时,它才返回true。否则,它返回false。

异常

NullPointerException: 如果obj为null,则抛出此异常。

示例

public class JavaHoldLockExp implements Runnable
{
    public void run()
    {
        // print currently executing thread
        System.out.println("Currently executing thread is: " + Thread.currentThread().getName());
        // returns true if the current thread holds the lock on the specified object
        System.out.println("Does thread holds lock? " + Thread.holdsLock(this));
        synchronized (this)
        {
            System.out.println("Does thread holds lock? " + Thread.holdsLock(this));
        }
    }
    public static void main(String[] args)
    {
        JavaHoldLockExp g1 = new JavaHoldLockExp();
        // create a thread
        Thread t1 = new Thread(g1);
        // this will call run() function
        t1.start();
    }
}
输出:
Currently executing thread is: Thread-0
Does thread holds lock? false
Does thread holds lock? true

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4