hashmap怎么变成线程安全的

 我来答
m2...w@163.com
2017-11-09 · TA获得超过205个赞
知道小有建树答主
回答量:221
采纳率:39%
帮助的人:107万
展开全部
// synchronizedMap方法
public static Map synchronizedMap(Map m) {
return new SynchronizedMap>(m);
}
// SynchronizedMap类
private static class SynchronizedMap
implements Map, Serializable {
private static final long serialVersionUID = 1978198479659022715L;

private final Map m; // Backing Map
final Object mutex; // Object on which to synchronize

SynchronizedMap(Map m) {
this.m = Objects.requireNonNull(m);
mutex = this;
}

SynchronizedMap(Map m, Object mutex) {
this.m = m;
this.mutex = mutex;
}

public int size() {
synchronized (mutex) {return m.size();}
}
public boolean isEmpty() {
synchronized (mutex) {return m.isEmpty();}
}
public boolean containsKey(Object key) {
synchronized (mutex) {return m.containsKey(key);}
}
public boolean containsValue(Object value) {
synchronized (mutex) {return m.containsValue(value);}
}
public V get(Object key) {
synchronized (mutex) {return m.get(key);}
}

public V put(K key, V value) {
synchronized (mutex) {return m.put(key, value);}
}
public V remove(Object key) {
synchronized (mutex) {return m.remove(key);}
}
// 省略其他方法
}
子非贤鱼
2017-11-08 · TA获得超过270个赞
知道小有建树答主
回答量:511
采纳率:52%
帮助的人:56.7万
展开全部
用ConcurrentHashMap, 这个是线程安全的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式