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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

synchronized锁

發布時間:2024/7/23 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 synchronized锁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在集群,分布式,微服務這么火,基本上也不會有單機服務了,所以synchronized基本上就廢了,但不影響我們再回憶一下他的一些思想,很多東西,萬變不離其宗。

概念:

能夠保證同一時刻最多只有一個線程執行該段代碼,以達到保證并發安全的作用。

核心思想:

1、一個鎖只能同時被一個線程獲取,沒拿到鎖的線程必須等待
2、每個實例都對應自己的一把鎖,不同實例的鎖互不影響。
3、如果鎖對象是*.class或者synchronized修飾靜態方法時,所有對象其實是共用一把鎖,這把鎖也叫類鎖。
4、鎖住的方法如果拋出異常,JVM會自動釋放鎖。

性質

1、可重入
同一線程的外層函數獲得鎖后,內層函數可以直接再次獲取該鎖
好處:避免死鎖,提高封裝線性
2、不可中斷
一旦這個鎖被別人獲得,那么我如果想獲得這個鎖,只能選擇等待或者阻塞,直到別人釋放了這個鎖
相比Lock可中斷,這個synchronized就是等到死。

原理

加鎖和釋放鎖,其實就是操作內置鎖,等價于lock的lock方法和unlock方法。
每個對象,都有一個對象頭,對象頭中可以存很多信息,其中有一個就是synchronized的信息。
javac test.java
javap -verbose test.class
對于加鎖的,我們可以在反編譯中看到兩個指令,monitorenter和monitorexit。
這兩個指令,就相當于Lock鎖的lock方法和unlock方法。
monitor可以理解是個計數器,
計數器初始為0,0代表可以獲取鎖。
當一個線程獲取鎖,對應的就是執行monitorenter指令,計數器+1
同一個線程如果重入,就繼續+1,多次重入就多次+1
當退出鎖方法,對應的就是執行monitorexit指令,計數器-1
如果有重入的,那就退一個就-1,計數器減到0,就代表釋放鎖。
如果計數器不為0,那么其他線程嘗試獲取鎖,就會獲取不到。

synchronized保證可見性

我們知道線程之間的通信,是通過主內存通信的,而其實每個線程都有自己的本地變量的副本,加這一層就是為了快,類似于緩存,那只要是緩存,就會出現緩存不一致。
而使用了synchronized關鍵字后,就會無視這層緩存,比如一個對象被鎖住,那么鎖住后任何修改,都會直接寫入主內存,所以不會出現線程的內存和主內存不一致的情況。
同樣的,得到鎖對象的時候,也是直接從主內存拿的。

synchronized缺點

1、效率低
鎖不能人為釋放,只能等執行完或者異常才能釋放
Lock能解決這個問題(Lock可以設置超時時間,trylock方法)。
2、不靈活
相比讀寫鎖,synchronized沒分開讀寫,那讀的時候也會加鎖,是在沒必要。

總結

單機服務,盡量少用synchronized
集群服務,禁止使用synchronized

雖然現在幾乎不用synchronized了,但他的原理都是可以借鑒的,比如計數器+1的思路,解決可重入等等,其實包括現在的分布式鎖,實現不一樣,但說白了最終都是一樣的,就是換個地方存計數器而已。redis分布式鎖,相當于把計數器存在redis中,zookeeper分布式鎖,相當于把計數器存在zookeeper中,數據庫實現的,也是一樣。

總結

以上是生活随笔為你收集整理的synchronized锁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看免费大片 | 亚洲黄站 | 国产 日韩 欧美 综合 | 国产精品搬运 | 一级aa毛片| 日韩欧美卡一卡二 | 99国产精品久久久久久久久久久 | 777精品 | 色四虎 | 黄色片在线免费看 | 黄色一级片毛片 | 日韩二区在线 | 亚洲综合一区在线 | 国产极品久久 | 久久久人| 国产性在线 | 日韩毛片在线播放 | 无码人妻精品一区二区蜜桃网站 | 久久精品6| 欧美一区二区三区色 | 天天狠天天插天天透 | 午夜视频网站 | 精品国产黄 | 人成在线免费视频 | 欧美日韩一区视频 | 日本理论片在线 | 在线免费中文字幕 | 国产综合图区 | 91久久人人| 久久精品第一页 | 日韩va视频 | 国产一卡二卡三卡四卡 | 国产夜夜夜 | 久久久人人爽 | 国产一级做a爱片久久毛片a | 成人极品 | 亚洲欧洲激情 | 黄色在线免费看 | 极品美女一区二区三区 | 黄色免费观看网站 | 波多野结衣www | 国产精品91一区 | 综合久久中文字幕 | 国产在线精 | 亚洲天堂中文字幕在线 | 少妇专区 | 草草屁屁影院 | 99久久精品免费看国产 | 欧美日韩视频免费 | 色94色欧美 | 四虎黄色影院 | 91在线播放国产 | 国产精品久久久久久人 | 成人性生交大片免费 | www.日本高清| 久久久老司机 | 久久1024| 风流少妇按摩来高潮 | 精品小视频在线观看 | 国产做a| 男人激情网| 日韩www| 色吊丝中文字幕 | 青春草av| 天美麻花果冻视频大全英文版 | 日韩一区二区三区不卡视频 | 毛片aa| 黄色av大片 | 乱xxxxx普通话对白 | 好屌妞视频这里有精品 | 日韩一区二区三区不卡 | 有码视频在线观看 | 国产精品污www一区二区三区 | 麻豆精品在线视频 | 成人亚洲视频 | 国产资源免费 | 日本成人在线免费观看 | 精品久久成人 | 亚洲色中色 | 欧美一二三 | 黄色网址大全免费 | 中文字幕一区二区三 | 成人理论视频 | 奇米影视9999| 欧美激情一级精品国产 | 日韩欧美国产精品综合嫩v 国产小毛片 | 色av一区 | 青草视频在线播放 | 亚洲欧洲成人在线 | 精品不卡一区二区 | 一区二区不卡在线观看 | 成人黄色大片在线观看 | 五月天丁香网 | 91久久久久久 | 波多野吉衣视频在线观看 | 调教亲女小嫩苞h文小说 | 中文字幕av在线免费 | 综合色99 | 一本色道久久hezyo加勒比 |