中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中鎖的面試題實例分析

發布時間:2022-06-01 15:58:21 來源:億速云 閱讀:154 作者:iii 欄目:大數據

這篇文章主要講解了“Java中鎖的面試題實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java中鎖的面試題實例分析”吧!

1.synchronized作用于靜態方法和非靜態方法的區別

非靜態方法:

給對象加鎖(可以理解為給這個對象的內存上鎖,注意 只是這塊內存,其他同類對象都會有各自的內存鎖),這時候在其他一個以上線程中執行該對象的這個同步方法(注意:是該對象)就會產生互斥

靜態方法: 相當于在類上加鎖(*.class位于代碼區,靜態方法位于靜態區域,這個類產生的對象公用這個靜態方法,所以這塊內存,N個對象來競爭),

這時候,只要是這個類產生的對象,在調用這個靜態方法時都會產生互斥。即該類所有的對象都共享一把鎖。

2.鎖類型有哪些

(1)樂觀鎖&悲觀鎖

(2)自旋鎖&非自旋鎖

(3)可重入鎖&不可重入鎖

(4)無鎖&輕量級鎖&偏向鎖&重量級鎖

(5)互斥鎖&共享鎖

(6)公平鎖&非公平鎖

3.線程同步的幾種方式

synchronized修飾

volatile實現同步(只能保證可見性,不能保證原子性)

使用局部變量ThreadLocal

使用原子類(AtomicInteger、AtomicBoolean……)

使用Lock

使用容器類(BlockingQueue、ConcurrentHashMap)

4.synchronized 和 lock 機制區別

synchronized 原始采用的是 CPU 悲觀鎖機制,即線程獲得的是獨占鎖。獨占鎖意味著其 他線程只能依靠阻塞來等待線程釋放鎖。

Lock 用的是樂觀鎖方式。所謂樂觀鎖就是,每次不加鎖而是假設沒有沖突而去完成某項操作,如果因為沖突失敗就重試,直到成功為止。樂觀鎖實現的機制就是 CAS 操作(Compare and Swap)。

5.說說線程安全的問題

線程安全是多線程領域的問題,線程安全可以簡單理解為一個方法或者一個實例可以在多線程環境中使用而不會出現問題。

 Java 多線程編程當中,提供了多種實現 Java 線程安全的方式:

最簡單的方式,使用 Synchronization 關鍵字

使用 java.util.concurrent.atomic 包中的原子類,例如 AtomicInteger

使用 java.util.concurrent.locks 包中的鎖

使用線程安全的集合 ConcurrentHashMap

使用 volatile關鍵字,保證變量可見性

感謝各位的閱讀,以上就是“Java中鎖的面試題實例分析”的內容了,經過本文的學習后,相信大家對Java中鎖的面試題實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

信丰县| 长葛市| 喜德县| 莱芜市| 黔西| 博乐市| 苏州市| 鸡西市| 太湖县| 镇江市| 乌鲁木齐市| 鄂托克前旗| 常熟市| 陇川县| 襄樊市| 英吉沙县| 临清市| 沽源县| 天水市| 汕尾市| 桦南县| 沾化县| 毕节市| 卓尼县| 吐鲁番市| 丰台区| 营口市| 定南县| 恩施市| 仙桃市| 东方市| 奉新县| 安平县| 沧州市| 阿克陶县| 夹江县| 汉川市| 托克托县| 报价| 贵定县| 珠海市|