《Java并发编程的艺术》读书笔记——并发容器框架

本文是《Java并发编程的艺术》读书笔记,重点探讨了多线程环境下的并发容器框架,包括容器的使用、阻塞队列的原理以及Fork/Join框架的应用。
摘要由CSDN通过智能技术生成

                         并发容器框架

1.多线程中的容器

      
上图是Java中的集合框架结构,当我们在单线程中使用集合框架中,一切都是顺理成章的。但到了多线程环境,由于基础容器就没有做同步处理,可能会出现很多线程安全的问题。最常见的问题就是常用的HashMap在多线程环境下执行put方法时可能会形成环链而导致死循环,从而占尽CPU。

        Java在util集合框架的基础上又添加了线程安全的集合框架,在util包下的concurrent子包中。
       举个例子,上面说的HashMap在多线程环境中的问题就可以使用ConcurrentHashMap来解决,在ConcurrentHashMap中,使用一种叫多段锁的机制,HashTable虽然是线程安全的,但所有的数据都共用一把锁,所以在数据访问的时候所有线程将会竞争同一把锁,这样就把并发转化成了串行,大大降低了性能。而多段锁机制是把数据切分成多段,每段有一把锁,这样在访问不同段的时候就可以实现并发。ConcurrentHashMap的数据结构是维持一个叫做Segment的数组,每个S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值