养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

HashMap怎么在多线程中使用

时间:2024-10-04 11:25:19

大多数javaer都知道HashMap是线程不安锾哩菸谷全的,多线程环境下数据可能会发生错乱,一定要谨慎使用。这个结论是没选多萑唢错,可是HashMap的线程不安全远远不是数据脏读这么简单,它还有可能会发生死锁,造成内存飙升100%的问题,情况十分严重,我们一般会是使用ConcurrentHashMap来代替hashMap在多线程情况下的使用,如果硬要使用,小编提供了以下几个方法。

工具/原料

eclipse

方法/步骤

1、首先我们来看一下怎么个模拟多线程同时操作同一个hashMap的代码

HashMap怎么在多线程中使用

2、多线程下操作同一个hashMap会出现的报错

HashMap怎么在多线程中使用

3、方式1:使用锁的机制去保证HashMap在多线程中的操作(不推荐使用,编码太恶心了)

HashMap怎么在多线程中使用

4、方式2:在多线程中使用Collections.synchronizedMap(Mapmap)方法,可以将HashMap变成一个同步的容器(拥有锁限制的同步机制)

HashMap怎么在多线程中使用

5、方式3:锂淅铄旰直接使用并发包下的ConcurrentHashMap,concurrentHashMap的put方法是加锁的,它是同步的(采用了ReentrantLock可重入锁),可以保证线程安全

HashMap怎么在多线程中使用

© 一点知识