【多線程與并發篇之4個核心問題】
三、多線程與并發(4個)
1、解釋下java中的線程狀态?
在java中,線程具有五種狀态。
這五種狀态,是線程在其生命周期内,可能經曆的不同階段。
這五種狀态分别是:
新建(new);
就緒(runnable);
阻塞(blocked);
等待(waitg)和超時等待(tid_waitg);
終止(terated)。
1)新建(new)
當創建一個新的thread對象時,該線程就處于新建狀态。
它還沒有開始執行,僅僅是作為一個對象存在。
2)就緒(runnable)
一旦線程對象,調用了start()方法,它就進入了就緒狀态。
這意味着線程已經準備好執行,但是否真正執行,則取決于jv的線程調度器。
3)阻塞(blocked)
當線程試圖獲取一個内部的對象鎖(而不是javautilcurrentlocks包中的鎖)…
而該鎖卻被其他線程持有時,則該線程進入阻塞狀态。
當持有鎖的線程釋放鎖時,阻塞的線程将進入就緒狀态。
4)等待和超時等待
等待(waitg):
當線程調用了不帶超時參數的objectwait()方法、threadjo()方法…
或者locksupportpark()方法時,線程會進入等待狀态。
等待狀态中的線程,不會被分配cpu執行時間。
它們必須等待另一個線程,做出一些特定動作(例如通知)。
超時等待(tid_waitg):
這是線程等待的另一個狀态,但有一個指定的等待時間。
當線程調用了threadsleep(longillis)、objectwait(longtiout)…
請勿開啟浏覽器閱讀模式,否則将導緻章節内容缺失及無法閱讀下一章。
相鄰推薦:讓你去修仙,不是去修仙子! 豬肉西施她,幹活比殺豬還絲滑! 鬥羅:不想成為主角呀 我被她們戀愛模拟了? 火槍靈能與錦衣衛 末世多子多福,從美豔老闆娘開始 惹我?開局就讓你跪下求治病 重生?我真是好男人啊! 主宰見聞錄 病嬌女總裁,開局非要貼貼才能好 這真是戀愛攻略? 全家都在拖後腿,大帥追妻太難了 赤紅,寶可夢最強精靈訓練家 穿越諸天:從拜師九叔開始 大唐皇子:我有農場系統 萬器 修仙:我的分身是洪荒巨獸 某魔圓的真理之名 我的監護人是機器人 大明中興全憑殺殺殺搶搶搶