Java中鎖類型的介紹

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Java中鎖類型的介紹,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、臨安網(wǎng)站維護、網(wǎng)站推廣。

1、自旋鎖

自旋鎖顧名思義,它會等待一定時間(自旋),在這期中會什么都不做就是等資源被釋放,好處在于沒有了內(nèi)核態(tài)用戶態(tài)切換的效率損失,但是如果它一直不能訪問到資源的話就會一直占用cpu資源,所以它會循環(huán)一段時間后進入阻塞狀態(tài)。

2、重量級鎖

synchronized就是重量級鎖的實現(xiàn)機制,搶不到資源的進程會進入阻塞狀態(tài)。

3、偏向鎖

顧名思義,它會偏向第一個訪問資源的進程,如果說只有一個進程執(zhí)行同步代碼塊,那么就會上個偏向鎖,如果有其他線程搶占資源,那么就會升級為輕量級鎖。

4、輕量級鎖

偏向鎖升級之后就是輕量級鎖,鎖只可以升級而不可以降級。輕量級鎖中的其他進程會進入自選狀態(tài),如果說自選失敗,就會升級會重量級鎖。

5、公平、非公正鎖

主要是指線程是否先來后到拿到鎖,synchronized是非公平的,而ReentrantLock默認非公平,可以設(shè)置為公平鎖。

6、悲觀鎖

總是假設(shè)最壞的情況,每次去拿數(shù)據(jù)的時候都認為別人會修改,所以每次在拿數(shù)據(jù)的時候都會上鎖,這樣別人想拿這個數(shù)據(jù)就會阻塞直到它拿到鎖(共享資源每次只給一個線程使用,其它線程阻塞,用完后再把資源轉(zhuǎn)讓給其它線程)。

傳統(tǒng)的關(guān)系型數(shù)據(jù)庫里邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖。Java中synchronized和ReentrantLock等獨占鎖就是悲觀鎖思想的實現(xiàn)。

7、樂觀鎖

總是假設(shè)最好的情況,每次去拿數(shù)據(jù)的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數(shù)據(jù),可以使用版本號機制(數(shù)據(jù)庫中)和CAS算法實現(xiàn)。

上述就是小編為大家分享的Java中鎖類型的介紹了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:Java中鎖類型的介紹
文章源于:http://muchs.cn/article14/gppide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、用戶體驗網(wǎng)站制作、商城網(wǎng)站外貿(mào)建站、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)