wait(): 使一個線程處于等待狀態,并且釋放所持有的對象的 lock 。
sleep(): 使一個正在運行的線程處于睡眠狀態,是一個靜態方法,調用此方法要捕捉
InterruptedException 異常。
notify(): 喚醒一個處于等待狀態的線程,注意的是在調用此方法的時候,并不能確切的喚醒某一個等
待狀態的線程,而是由 JVM 確定喚醒哪個線程,而且不是按優先級。
Allnotity(): 喚醒所有處入等待狀態的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們
2.啟動一個線程是用 run() 還是 start()?
啟動一個線程是調用 start() 方法,使線程所代表的虛擬處理機處于可運行狀態,這意味著它可以
由 JVM 調度并執行。這并不意味著線程就會立即運行。 run() 方法可以產生必須退出的標志來停止一個
線程。
3.當一個線程進入一個對象的一個 synchronized 方法后其它線程是否可進入此對象 的其它方法 ? 不能,一個對象的一個 synchronized 方法只能由一個線程訪問。
4.線程的基本概念、線程的基本狀態以及狀態之間的關系
線程指在程序執行過程中,能夠執行程序代碼的一個執行單位,每個程序至少都有一個線程,也就是
程序本身。
java 中的線程有四種狀態分別是:運行、就緒、掛起、結束。
新聞熱點
疑難解答