欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java的wait和sleep

林子帆1年前8瀏覽0評論

Java中的wait和sleep都是用于線程控制的方法。

wait()是Object類中的方法,可以讓當前線程等待,直到其他線程調用notify()或notifyAll()方法喚醒它。

public synchronized void wait()
throws InterruptedException

wait()方法必須在同步代碼塊中被調用,否則會拋出IllegalMonitorStateException異常。例如,以下代碼就是合法的:

synchronized(sharedObject) {
// some code
sharedObject.wait();
// more code
}

該代碼塊獲取了sharedObject對象的鎖,然后在該對象上等待,直到其他線程調用notify()或notifyAll()方法喚醒它。

與之相反,sleep()方法讓當前線程休眠,但不釋放鎖。例如:

try {
Thread.sleep(1000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}

這個代碼片段會讓當前線程休眠1秒鐘,但不釋放鎖。如果在等待時該線程被其他線程中斷,則會拋出InterruptedException異常。在這種情況下,需要在catch塊中再次調用Thread.currentThread().interrupt()方法來恢復線程的中斷狀態。