日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jvm锁_JVM如何处理锁

發(fā)布時(shí)間:2023/12/3 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm锁_JVM如何处理锁 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jvm鎖

當(dāng)我們談?wù)撟钚掳姹镜腟un Hotspot Java虛擬機(jī)1.6時(shí),當(dāng)您嘗試從java.util.concurrent.locks.Lock實(shí)現(xiàn)獲取鎖或輸入同步塊時(shí),JVM將執(zhí)行以下三種鎖類型:
  • 有偏見(jiàn)的 :有時(shí),即使在并發(fā)系統(tǒng)中也沒(méi)有爭(zhēng)用,并且在這種情況下,JVM不應(yīng)從OS借用互斥鎖來(lái)執(zhí)行鎖定。 Hotspot可以使用其自己的內(nèi)部數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作,以更有效的方式模擬鎖定。 例如,如果代碼的同步部分沒(méi)有實(shí)時(shí)并發(fā)執(zhí)行,則JVM使用CAS操作將所有者線程ID分配給Java代碼中用作互斥對(duì)象的對(duì)象,并在傳遞CAS時(shí)另外存儲(chǔ)重入計(jì)數(shù)。 它是有偏鎖 -JVM完成的“最輕”的鎖類型。 重入計(jì)數(shù)將由鎖所有者線程更新,就像沒(méi)有CAS的通常本地變量一樣。 如果CAS失敗,則意味著另一個(gè)線程已經(jīng)獲得了該鎖,在這種情況下,JVM 停止了互斥體所有者線程, 將線程上下文刷新到主內(nèi)存中并檢查重入計(jì)數(shù)。 如果為0,則JVM會(huì)將鎖升級(jí)為瘦類型,否則升級(jí)為胖 (我認(rèn)為主要目的是等待時(shí)間,如果鎖很薄,則應(yīng)該很小)。 注意 Hotspot使用與用于緩存標(biāo)識(shí)哈希碼相同的字段在互斥對(duì)象中存儲(chǔ)所有者線程ID。 因此,如果您一次在互斥體上檢索身份哈希碼,那么即使已被用作偏向鎖定,它也無(wú)法用于偏向鎖定。 有關(guān)偏向鎖的更多信息,請(qǐng)參見(jiàn)David Dice的博客 。
  • :這是一個(gè)簡(jiǎn)單的自旋鎖。 當(dāng)旋轉(zhuǎn)時(shí)間很小時(shí),它有助于節(jié)省線程上下文切換的時(shí)間。 當(dāng)一個(gè)線程嘗試獲取占用的互斥鎖時(shí),它將旋轉(zhuǎn)一段時(shí)間,直到釋放鎖為止。 旋轉(zhuǎn)次數(shù)基于內(nèi)部JVM分辨率,并且可能取決于不同的因素:JVM收集的有關(guān)您的應(yīng)用程序的統(tǒng)計(jì)信息,使用的線程數(shù),CPU等等。 JVM確定精簡(jiǎn)鎖何時(shí)變得無(wú)效,并將其升級(jí)為胖鎖。
  • fat :JVM請(qǐng)求操作系統(tǒng)互斥并使用OS調(diào)度程序引擎進(jìn)行線程駐留和喚醒時(shí),“最強(qiáng)”的鎖定類型。 它比以前的類型昂貴得多,因?yàn)樵谶@種情況下,每當(dāng)線程獲取并釋放鎖時(shí),JVM都應(yīng)直接與OS交互。

參考: JVM如何處理 Slava技術(shù)博客上的 JCG合作伙伴提供的鎖 。

相關(guān)文章 :
  • Erlang與Java內(nèi)存架構(gòu)
  • Java Fork / Join進(jìn)行并行編程
  • Java內(nèi)存模型-快速概述和注意事項(xiàng)
  • Java中可怕的雙重檢查鎖定習(xí)慣用法
  • Java最佳實(shí)踐–隊(duì)列之戰(zhàn)和鏈接的ConcurrentHashMap

翻譯自: https://www.javacodegeeks.com/2011/05/how-jvm-handle-locks.html

jvm鎖

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的jvm锁_JVM如何处理锁的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。