sleep會(huì)釋放cpu資源嗎 程序中的sleep起什么作用?
程序中的sleep起什么作用?sleep()方法導(dǎo)致了程序暫停執(zhí)行指定的時(shí)間,讓出cpu該其他線程,但是他的監(jiān)控狀態(tài)依然保持者,當(dāng)指定的時(shí)間到了又會(huì)自動(dòng)恢復(fù)運(yùn)行狀態(tài)。在調(diào)用sleep()方法的過(guò)程中,
程序中的sleep起什么作用?
sleep()方法導(dǎo)致了程序暫停執(zhí)行指定的時(shí)間,讓出cpu該其他線程,但是他的監(jiān)控狀態(tài)依然保持者,當(dāng)指定的時(shí)間到了又會(huì)自動(dòng)恢復(fù)運(yùn)行狀態(tài)。在調(diào)用sleep()方法的過(guò)程中,線程不會(huì)釋放對(duì)象鎖。而當(dāng)調(diào)用wait()方法的時(shí)候,線程會(huì)放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象調(diào)用notify()方法后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲取對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
已經(jīng)分離的線程,線程中出現(xiàn)段錯(cuò)誤,為什么會(huì)導(dǎo)致整個(gè)進(jìn)程結(jié)束?
(1)JVM將CPU資源從當(dāng)前線程切換給其他線程,使本線程讓出CPU的使用權(quán)處于中斷狀態(tài)。 (2)線程使用CPU資源期間執(zhí)行了sleep方法,使當(dāng)前線程進(jìn)入休眠狀態(tài)。 (3)線程使用CPU資源期間執(zhí)行了wait( )方法,使得當(dāng)前線程進(jìn)入等待狀態(tài)。 (4)線程使用CPU資源期間執(zhí)行某個(gè)操作進(jìn)入阻塞狀態(tài),比如執(zhí)行讀/寫操作引起阻塞。