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