java 怎么实现并发hashmap

 我来答
kiryuukazuma12
2017-08-25 · TA获得超过220个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:122万
展开全部
如果需要使 Map 线程安全,大致有这么四种方法:
1、使用 synchronized 关键字,代码如下
synchronized(anObject) {
value = map.get(key);
}

2、使用 JDK1.5提供的锁(Java.util.concurrent.locks.Lock)。代码如下
lock.lock();
value = map.get(key);
lock.unlock();

3、使用 JDK1.5 提供的读写锁(java.util.concurrent.locks.ReadWriteLock)。代码如下
rwlock.readLock().lock();
value = map.get(key);
rwlock.readLock().unlock();
这样两个读操作可以同时进行,理论上效率会比方法 2 高。

4、使用 JDK1.5 提供的 java.util.concurrent.ConcurrentHashMap 类。该类将 Map 的存储空间分为若干块,每块拥有自己的锁,大大减少了多个线程争夺同一个锁的情况。代码如下
value = map.get(key); //同步机制内置在 get 方法中
其中ConcurrentHashMap是最好最快的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6705c13
2017-08-23 · TA获得超过801个赞
知道小有建树答主
回答量:613
采纳率:83%
帮助的人:196万
展开全部
用ConcurrentHashMap吧,线程安全,并发性也不错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式