1.toString()線程
2.equal()對象
3.getClass()get
4.clone()it
5.hasCode()監控
6.wait()程序
7.notify()方法
8.notifyall()cpu
9finalize()時間
notify()和notifyall()的區別:
notifyAll會使全部等待被喚醒的線程退出等待狀態,變爲等待該對象上的鎖,當鎖打開的時候,他們就會去競爭。
notify則只會選擇一個等待的線程進行通知,而且使得它獲取該對象上的鎖,不會驚動其餘等待的線程。
當第一個線程運行完畢之後釋放對象上的鎖此時若是該對象沒有再次使用notify語句,則即使該對象已經空閒,其餘wait狀態等待的線程因爲沒有獲得該對象的通知,繼續處在wait狀態,直到這個對象發出一個notify或notifyAll,它們等待的是被notify或notifyAll,而不是鎖。
wait()和sleep()的區別
wait()屬於Object類上面的方法;wait()屬於Thread類上的方法
sleep()方法致使了程序暫停執行指定的時間,讓出cpu該其餘線程,可是他的監控狀態依然保持者,當指定的時間到了又會自動恢復運行狀態。
在調用sleep()方法的過程當中,線程不會釋放對象鎖。
wait()會使得線程放棄該對象的鎖,只有調用notify()方法喚醒該線程,而且把鎖給他,他纔會繼續運行,不然一直掛着等待喚醒,從新拿到鎖。