位置:首页 > Java技术 > java.lang > java.lang.Thread.holdsLock()方法实例

java.lang.Thread.holdsLock()方法实例

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

声明

以下是java.lang.Thread.holdsLock()方法的声明

public static boolean holdsLock(Object obj)

参数

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

返回值

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

异常

  • NullPointerException -- 如果obj 为 null.

例子

下面的例子显示java.lang.Thread.holdsLock()方法的使用。

package com.yiibai;

import java.lang.*;

public class ThreadDemo implements Runnable {

   Thread th;

   public ThreadDemo() {

      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 ThreadDemo();
   }
}

让我们来编译和运行上面的程序,这将产生以下结果:

Holds Lock = false
Holds Lock = TRUE