常用的并发容器介绍

一、hashmap

正常HashMap类是不能保证同步的,但是用Collections.synchronizedMap()创建可同步 。其实就是对整个hashmap结构上加synchornized,效率低不常用

Map map=Collections.synchronizedMap(new HashMap())

二、Hashtable

与Collections.synchronizedMap()类似,其实就是对整个hashtable结构上加synchornized,效率低不常用

三、ConcurrentMap

ConcurrentMap下主要有两个实现类:ConcurrentHashMap和ConcurrentSkipListMap。用法和hashmap一样

1、ConcurrentHashMap

相当于对数组的每段都上了锁,降低了锁的粒度。只要多个线程不操作同一分段,是可以并发执行的

详情:https://blog.youkuaiyun.com/qq_18300037/article/details/123795776

2、ConcurrentSkipListMap

相当于对数组的每段都上了锁,降低了锁的粒度,并且支持排序。因为有skiplist这种结构所以才支持排序,但是比较占内存

详情:https://blog.youkuaiyun.com/hbtj_1216/article/details/114228578

四、vecotr

vecotr和ArrayList很像,但相比ArrayList,Vector 把集合的每个操作(增删改查)都加上了锁,而这锁从来都不是必须的。正因为如此所以vecotr慢慢的被弃用。

五、CopyOnWrite

CopyOnWrite下主要有一个实现类:CopyOnWriteArrayList。用法和list一样

CopyOnWriteArrayList

读不加锁。写时加锁、每次写时都是复制出一份在新的上写、写完删除旧的,没写完读旧的、写完读新的

详情:https://blog.youkuaiyun.com/u014203449/article/details/83867921

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一梦无痕bzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值