线程安全的HashMap替代方案

2023-09-22 37 0

HashMap是线程不安全的,具体原因可以参考文章:HashMap线程不安全性
那么若我们想要在多线程情况下使用HashMap应该怎么办呢?
下面给出三种方案:

HashTable

和HashMap原理相同,但是是线程安全的,与HashMap的最大区别是HashMap的Key和Value可以为null,但是HashTable的Key和Value都不能为null。
但是HashTable是遗留类,最好不要使用。

ConcurrentHashMap

Concurrent并发包下的类,采用了分段锁,是线程安全的,每个分段锁维护着几个桶,多个线程可以同时访问不同分段锁上的桶,使并发度更高。默认并发级别为16。

Collections.synchronizeMap()

使用Collections.synchronizeMap(map) 方法可以返回一个线程安全的Map。

代码编程
赞赏

相关文章

msyql理论2—mysql事务总结
js7-toString
msyql理论1—日志-binlog-undolog-redolog
js6-js属性相关
js5-getPrototypeOf和isPrototypeOf
js4-js宏任务和微任务