Java Thread holdLock()方法

java.lang.Thread.holdsLock() 当且仅当当前线程在指定的对象上保持监视器锁方法返回true。

1 语法

public static boolean holdsLock(Object obj)

2 参数

obj:这是用于测试锁定拥有的对象。

3 返回值

如果当前线程在指定的对象上保持监视器锁此方法返回true。

4 示例 

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * java.lang.Thread.holdsLock() 方法的例子
 */
import java.lang.*;

public class Demo implements Runnable {

    Thread th;

    public Demo() {

        th = new Thread(this);

        // this will call run() function
        th.start();
    }

    public void run() {

      /* returns true if and only if the current thread holds the
         monitor lock on the specified object */
        System.out.println("Holds Lock = " + Thread.holdsLock(this));

        synchronized (this) {
            System.out.println("Holds Lock = " + Thread.holdsLock(this));
        }
    }

    public static void main(String[] args) {
        new Demo();
    }
}

输出结果为:

Holds Lock = false
Holds Lock = true

热门文章

优秀文章