真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中怎么實(shí)現(xiàn)同步

今天就跟大家聊聊有關(guān)java中怎么實(shí)現(xiàn)同步,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供黃山區(qū)網(wǎng)站建設(shè)、黃山區(qū)做網(wǎng)站、黃山區(qū)網(wǎng)站設(shè)計(jì)、黃山區(qū)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、黃山區(qū)企業(yè)網(wǎng)站模板建站服務(wù),十年黃山區(qū)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

(1)公平鎖/非公平鎖

公平鎖,是指按照線程申請(qǐng)的順序獲取鎖。

非公平鎖,是指不是按照線程申請(qǐng)的順序獲取鎖,有可能后申請(qǐng)的線程反而先獲取到鎖,假如先來(lái)的線程一直獲取不到鎖,會(huì)造成鎖饑餓現(xiàn)象。

ReentrantLock中可以通過(guò)構(gòu)造方法指定是否為公平鎖,默認(rèn)為非公平鎖,非公平鎖的優(yōu)點(diǎn)在于吞吐量大。

synchronized無(wú)法指定為公平鎖,一直都是非公平鎖。

(2)可重入鎖

可重入鎖,是指一個(gè)線程獲取鎖之后再嘗試獲取鎖時(shí)會(huì)自動(dòng)獲取鎖,可重入鎖的優(yōu)點(diǎn)是避免死鎖。

ReentrantLock和synchronized都是可重入鎖。

(3)獨(dú)享鎖/共享鎖

獨(dú)享鎖,是指鎖一次只能被一個(gè)線程持有。

共享鎖,是指鎖一次可以被多個(gè)線程持有。

ReentrantLock和synchronized都是獨(dú)享鎖,ReadWriteLock的讀鎖是共享鎖,寫(xiě)鎖是獨(dú)享鎖。

(4)互斥鎖/讀寫(xiě)鎖

與獨(dú)享鎖/共享鎖的概念差不多,是獨(dú)享鎖/共享鎖的具體實(shí)現(xiàn)。

ReentrantLock和synchronized都是互斥鎖

ReadWriteLock是讀寫(xiě)鎖

(5)樂(lè)觀鎖/悲觀鎖

悲觀鎖,是指認(rèn)為對(duì)于同一個(gè)數(shù)據(jù)的并發(fā)操作必然會(huì)發(fā)生修改,即使不會(huì)發(fā)生修改也這么認(rèn)為,所以一定要加鎖。

樂(lè)觀鎖,是指認(rèn)為對(duì)于同一個(gè)數(shù)據(jù)的并發(fā)操作不一定會(huì)發(fā)生修改,在更新數(shù)據(jù)的時(shí)候,嘗試去更新數(shù)據(jù),如果失敗就不斷嘗試。

悲觀鎖適用于寫(xiě)操作多的場(chǎng)景,樂(lè)觀鎖適用于讀操作多的場(chǎng)景。

(6)分段鎖

分段鎖,是一種鎖的設(shè)計(jì)思路,它細(xì)化了鎖的粒度,主要運(yùn)用在ConcurrentHashMap中,實(shí)現(xiàn)高效的并發(fā)操作,當(dāng)操作不需要更新整個(gè)數(shù)組時(shí),就只鎖數(shù)組中的一項(xiàng)就可以了。

(7)偏向鎖/輕量級(jí)鎖/重量級(jí)鎖

這三個(gè)鎖主要是針對(duì)synchronized進(jìn)行優(yōu)化使用的,主要是通過(guò)對(duì)象監(jiān)視器在對(duì)象頭中的字段來(lái)表明的。

偏向鎖,是指一段同步代碼一直被一個(gè)線程訪問(wèn),那么這個(gè)線程會(huì)自動(dòng)獲取鎖,降低獲取鎖的代價(jià)。

輕量級(jí)鎖,是指當(dāng)鎖是偏向鎖時(shí),被另一個(gè)線程所訪問(wèn),偏向鎖會(huì)升級(jí)為輕量級(jí)鎖,這個(gè)線程會(huì)通過(guò)自旋的方式嘗試獲取鎖,不會(huì)阻塞,提高性能。

重量級(jí)鎖,是指當(dāng)鎖是輕量級(jí)鎖時(shí),當(dāng)自旋的線程自旋了一定的次數(shù)后,還沒(méi)有獲取到鎖,就會(huì)進(jìn)入阻塞狀態(tài),該鎖升級(jí)為重量級(jí)鎖,重量級(jí)鎖會(huì)使其他線程阻塞,性能降低。

(8)自旋鎖

自旋鎖,是指嘗試獲取鎖的線程不會(huì)阻塞,而是循環(huán)的方式不斷嘗試,這樣的好處是減少線程的上下文切換帶來(lái)的開(kāi)鎖,提高性能,缺點(diǎn)是循環(huán)會(huì)消耗CPU。

(9)監(jiān)視器鎖

synchronized的實(shí)現(xiàn)方式,使用monitorenter和monitorexit來(lái)實(shí)現(xiàn)。

(10)mutex鎖

互斥鎖,LockSupport.part()底層是通過(guò)mutex實(shí)現(xiàn)的。

看完上述內(nèi)容,你們對(duì)java中怎么實(shí)現(xiàn)同步有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)頁(yè)名稱:java中怎么實(shí)現(xiàn)同步
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/pgpoig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部