同步容器和并发简介

同步容器

   可以简单地理解为通过synchronized来实现同步的容器,如果有多个线程调用同步容器的方法,它们将会串行执行。
    比如Vector,Hashtable,以及Collections.synchronizedSet,synchronizedList等方法返回的容器。

同步容器的弊端
 

    性能问题:由于被 synchronized 修饰的方法,每次只允许一个线程执行,其他试图访问这个方法的线程只能等待。
             显然,这种方式比没有使用 synchronized 的容器性能要差。
    安全问题:同步容器真的一定安全吗?答案是:未必。同步容器未必真的安全。在做复合操作时,仍然需要加锁来保护。

并发容器:解决了以上同步容器的弊端

1、CopyOnWrite容器:
	CopyOnWriteArrayList:线程安全的 ArrayList
	CopyOnWriteArraySet:线程安全的 Set,它内部包含了一个 CopyOnWriteArrayList,
                             因此本质上是由 CopyOnWriteArrayList 实现的。
2、CocurrentMap的实现类:
	ConcurrentHashMap:线程安全的 HashMap。采用分段锁实现高效并发。
	ConcurrentSkipListMap:线程安全的有序 Map。使用跳表实现高效并发。
3、其他:
	ConcurrentSkipListSet:相当于线程安全的 TreeSet。它是有序的 Set。它由 ConcurrentSkipListMap 实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值