位置:首頁 > 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