线程安全的Map合集---不只有ConcurrentHashMap和Hashtable

线程安全的Map合集---不只有ConcurrentHashMap和Hashtable

分享

线程安全的Map有哪些呢?

Hashtable

Hashtable是jdk遗留下来的工具类,简单暴力,把线程不安全的方法全部加上了synchronized,因此肯定是线程安全的。但是他相对于HashMap还是有自己很多的特点的,例如:

1、如果构造方法指定了容量,就是指定的容量,不会像HashMap取2的幂。
2、默认初始大小为11,扩容大小为2倍+1
在这里插入图片描述
3、取模不是用的位运算,而是模运算
在这里插入图片描述
4、key和value都不能为null,如图:(null.hashcode()会抛出空指针异常)
在这里插入图片描述

ConcurrentHashMap

通过了cas操作和synchronized进行优化,加锁单位是hash表中的一个节点,因此效率很高。其他部分和HashMap还是很像的。

ConcurrentSkipListMap

这个准确的说和HashMap还是有点不太相同的,这里实现的Map是有序的,底层如同他的名字一样,采用的是跳表的数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值