HashMap变成线程安全方法
2017-01-12 16:11
141 查看
我们都知道。HashMap是非线程安全的(非同步的)。那么怎么才能让HashMap变成线程安全的呢?
我认为主要可以通过以下三种方法来实现:
1.替换成Hashtable,Hashtable通过对整个表上锁实现线程安全,因此效率比较低
2.使用Collections类的synchronizedMap方法包装一下。方法如下:
public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) 返回由指定映射支持的同步(线程安全的)映射
3.使用ConcurrentHashMap,它使用分段锁来保证线程安全
我认为主要可以通过以下三种方法来实现:
1.替换成Hashtable,Hashtable通过对整个表上锁实现线程安全,因此效率比较低
2.使用Collections类的synchronizedMap方法包装一下。方法如下:
public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) 返回由指定映射支持的同步(线程安全的)映射
3.使用ConcurrentHashMap,它使用分段锁来保证线程安全
相关文章推荐
- Java8的HashMap详解(存储结构,功能实现,扩容优化,线程安全,遍历方法)
- HashMap 变为线程安全的方法
- HashMap 变为线程安全的方法
- 如何让HashMap变成线程安全的?
- Java - 线程安全的 HashMap 实现方法及原理
- 线程安全的概念,实现线程安全的几种方法
- destoon后台网站设置变成空白的解决方法
- PS中把图片白色背景变成透明的方法
- 解决visual studio空格变成很多点号的3种方法
- .NET中保证线程安全的高级方法Interlocked类使用介绍
- php excel导出数字字符串变成科学技术法导致精度变化的解决方法
- Excel 手机号码、身份证 等信息 导入到SQL2005 中,转换成字符是自动变成 科学计数法 的解决方法
- Java中HashMap的transfer方法理解
- HashMap的getOrDefault()方法
- hashmap冲突的解决方法以及原理分析:
- 线程及线程安全解决方法
- 几个问题(三)--------线程安全的概念,实现线程安全的几种方法
- 在多线程中使用静态方法是否有线程安全问题
- 在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环?
- java中运用HashMap进行分类分拣方法