1、線程睡眠
Thread中的sleep方法可以使當前線程睡眠瘤缩,線程睡眠后喇完,里面的任務(wù)不執(zhí)行,待睡眠時間過后會自動蘇醒剥啤,從而繼續(xù)執(zhí)行任務(wù)
Thread中有兩個重載的sleep方法
sleep(long mills),指定睡眠毫秒數(shù)
sleep(long mills,int nanos),第一個參數(shù)是毫秒锦溪,第二個參數(shù)是納秒
Thread.sleep(1000);
2奄喂、sleep和wait區(qū)別
sleep
Sleep是線程類Thread 的靜態(tài)方法,它是使當前線程暫時睡眠海洼,可以放在任何位置跨新。Sleep使用的時候,線程并不會放棄對象的使用權(quán)坏逢,所以在同步方法或同步塊中使用sleep域帐,一個線程訪問時,其他的線程無法訪問是整。sleep只是暫時休眠一定時間肖揣,時間到了之后,自動恢復(fù)運行浮入,不需另外的線程喚醒wait
wait是Object中的方法龙优,其是使當前線程暫時放棄對象的使用權(quán)進行等待,必須放在同步方法或同步塊里事秀。wait會釋放當前線程,放棄對象的使用權(quán)彤断,讓其他的線程也可以訪問。導(dǎo)致當前線程等待易迹,直到另一個線程調(diào)用該對象的 notify()方法或notifyAll()方法宰衙,或者某些其他線程中斷當前線程,或一定量的實時時間
最大區(qū)別:
sleep位置隨意睹欲,睡眠時供炼,保持對象鎖,仍然占有改鎖窘疮,并且其他線程無法訪問
wait必須放在同步方法或同步塊里袋哼,睡眠時,釋放對象鎖闸衫,其他線程可以訪問涛贯,如未設(shè)置時間,且需要其他線程喚醒