0
我想檢查類的對象上的鎖。我爲此使用Thread.holdsLock(this)
。這是正確的方法嗎?檢查java中對象的鎖定
我的問題是我如何檢查對象是否鎖定爲主要方法,並檢查靜態方法上的鎖定。
public class CheckLock {
public static void main(String[] args) throws InterruptedException {
objectLockClass olc= new objectLockClass();
Thread t1=new Thread(olc);
t1.start();
}
}
class objectLockClass implements Runnable {
@Override
public void run() {
boolean isLocked = true;
int counter=0;
synchronized (this) {
while (isLocked) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("lock object in run : " + Thread.holdsLock(this));
if (counter==5) isLocked=false;
counter++;
}
}
輸出是:
lock object in run : true
lock object in run : true
lock object in run : true
lock object in run : true
lock object in run : true
lock object in run : true
對於正常的鎖,是的。我同意這樣做。 –
@JosefE。我可以通過使用t1和olc實例來檢查main方法中對象的鎖定。 – vinaybhatoa
我不明白你在問什麼。請澄清。 –