592小說網

592小說網>藍星文娛:從微末崛起的娛樂大亨 > 第十章多線程與并發篇2024年Java求職面試與工作編程要點實錄(第2頁)

第十章多線程與并發篇2024年Java求職面試與工作編程要點實錄(第2頁)

或threadjo(longillis)等帶有超時參數的方法時,線程會進入此狀态。

5)終止(terated)

當線程執行完畢,或因為異常退出run()方法後,線程就進入了終止狀态。

這個線程對象,将不再是可調度的,并且它的任務已經完成了。

以上就是線程的五種狀态啦!

你若理解了這些線程狀态,那麼對于編寫高效,且線程安全的java代碼非常重要。

例如,你需要知道…

何時可能需要等待,或通知其他線程。

何時可能需要處理阻塞狀态,以及如何避免線程死鎖等問題。

2、談談java中的synized關鍵字和reentrantlock的區别?

在java中,synized關鍵字和reentrantlock都是用于實現同步的重要機制。

兩者有四個方面的區别。

即它們在“實現方式、使用靈活性、性能以及功能特性”這四個方面存在一些明顯的區别。

1)實現方式:

synized是java語言内置的關鍵字,它在jv層面實現,無法被繼承。

它提供了對類或者實例的加鎖機制,使得同一時間,隻有一個線程可以執行某段代碼。

reentrantlock是java的一個類。

它是javautilcurrentlocks包下提供的一個互斥鎖,通過代碼實現。

因此,它提供了比synized更豐富的功能。

例如,可以中斷等待鎖的線程,也可以嘗試獲取鎖。

2)使用靈活性:

synized的使用較為簡單,隻需要在方法或代碼塊前,加上關鍵字即可。

但是,它的鎖粒度較大,無法精細控制需要同步的代碼範圍。

而reentrantlock,則提供了更多的控制選項,。

例如,可以通過lock()和unlock()方法,顯式地獲取和釋放鎖。

這使得開發者,可以更加靈活地控制同步代碼的範圍。

此外,reentrantlock還支持公平鎖和非公平鎖,而synized總是非公平的。

3)性能:

在java6以及之後的版本中,synized和reentrantlock的性能差距已經不大。

請勿開啟浏覽器閱讀模式,否則将導緻章節内容缺失及無法閱讀下一章。

相鄰推薦:火槍靈能與錦衣衛  惹我?開局就讓你跪下求治病  修仙:我的分身是洪荒巨獸  病嬌女總裁,開局非要貼貼才能好  某魔圓的真理之名  全家都在拖後腿,大帥追妻太難了  豬肉西施她,幹活比殺豬還絲滑!  這真是戀愛攻略?  穿越諸天:從拜師九叔開始  萬器  我被她們戀愛模拟了?  鬥羅:不想成為主角呀  主宰見聞錄  我的監護人是機器人  大唐皇子:我有農場系統  末世多子多福,從美豔老闆娘開始  讓你去修仙,不是去修仙子!  赤紅,寶可夢最強精靈訓練家  重生?我真是好男人啊!  大明中興全憑殺殺殺搶搶搶  

已完結熱門小說推薦

最新标簽