第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

HashMap中在項目中不用鎖,使用什么方法可以把他改造成線程安全的?

HashMap中在項目中不用鎖,使用什么方法可以把他改造成線程安全的?

蕭十郎 2018-10-05 08:15:21
在java中,Hashmap是線程不安全的,通過鎖的機制和粒度,在源碼中提供了HashTable和ConcurrentHashMap兩種數(shù)據(jù)結(jié)構(gòu)供使用,但是如果不使用鎖,有什么方法將HashMap做到再業(yè)務(wù)中是線程安全的呢?==========================================================================我有一種思路是這樣的:首先有一個map,再使用它的時候,將他賦值給一個新的map,我們叫他map',然后再將該map'做為key,存成一個新map。新map為Map<map',value>,這樣每次添加的時候,是基于map'來添加的?各路大神,還有沒有其他思路呢?大家一起來討論討論哈。
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經(jīng)驗 獲得超6個贊

共享數(shù)據(jù)不用鎖不能做到線程安全。你的方法復(fù)制那步線程不安全。
要線程安全要么不共享,要么用鎖

查看完整回答
反對 回復(fù) 2018-10-14
?
繁星點點滴滴

TA貢獻1803條經(jīng)驗 獲得超3個贊

樓主說的方法是CopyOnWrite吧,主要思想就是操作的時候創(chuàng)建一個副本,但是可以參照JDKCopyOnWriteArrayList,其實它set操作的時候也是有加鎖的,在遍歷的時候用的是副本,所以不用加鎖操作.因為如果不加鎖的,最后的數(shù)據(jù)merge回去是一件頭疼的事情(意味著,你在merge的時候肯定是要加鎖的)

查看完整回答
反對 回復(fù) 2018-10-14
  • 2 回答
  • 0 關(guān)注
  • 1779 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號