(網(wǎng)上的答案:sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間脾歇,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持藕各,到時后會自動恢復(fù)激况。調(diào)用sleep不會釋放對象鎖。 wait是Object類的方法誉碴,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此對象的等待鎖定池代咸,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲得對象鎖進(jìn)入運行狀態(tài)成黄。)
多線程有幾種實現(xiàn)方法?同步有幾種實現(xiàn)方法?
多線程有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口
同步的實現(xiàn)方面有兩種思瘟,分別是synchronized,wait與notify
wait():使一個線程處于等待狀態(tài)闻伶,并且釋放所持有的對象的lock。
sleep():使一個正在運行的線程處于睡眠狀態(tài)光绕,是一個靜態(tài)方法畜份,調(diào)用此方法要捕捉InterruptedException異常。
notify():喚醒一個處于等待狀態(tài)的線程停蕉,注意的是在調(diào)用此方法的時候钙态,并不能確切的喚醒某一個等待狀態(tài)的線程,而是由JVM確定喚醒哪個線程册倒,而且不是按優(yōu)先級。