Java是一門非常流行的編程語言,其中的sleep和wait是兩個重要的方法。本文將介紹這兩個方法的區別和使用方法。
sleep()方法是在Java中常用的方法之一,它可以讓當前線程休眠一段時間。該方法的調用形式為:
try{ Thread.sleep(1000); //休眠一秒 }catch(InterruptedException e){ e.printStackTrace(); }
上述代碼中的1000表示休眠的毫秒數,catch塊中的代碼會在發生中斷異常時執行。
與sleep()方法不同的是,wait()方法可以讓線程等待某些條件,直到其他線程通知這個條件已經滿足時,該線程才會被喚醒。wait()方法通常和synchronized關鍵字一起使用,代碼示例如下:
synchronized(object){ while(!condition){ object.wait(); } //執行業務邏輯 }
上述代碼中的object表示當前線程鎖定的對象,condition表示等待的條件。如果線程發現condition不滿足,就會調用wait()方法讓出鎖并進入等待狀態;如果condition被其他線程改變,就會調用notify()/notifyAll()方法喚醒等待的線程。
總結來說,sleep()方法是讓線程等待一段時間的方法,wait()方法是讓線程等待某些條件的方法。在使用時要注意他們的區別和正確的調用方法。