Java笔记11--ConcurrentHashMap展示并发,集合,源码

jdk1.7和1.8的差别,介绍ConcurrentHashMap

通过put 和get源码,了解ConcurrentHashMap的底层结构和hash流程

以CAS+Synchronized管理并发的方式

实例介绍volatile含义

1.引出话题

HashMap和线程不安全对象时候

并发和volatile时

回答数据结构hash表,红黑树等

HashMap和SynchronizedMap区别

1.jdk1.7以“锁”segment的方式保证并发

Java笔记11--ConcurrentHashMap展示并发,集合,源码

2.jdk1.8中以“CAS”的方式保证并发

Java笔记11--ConcurrentHashMap展示并发,集合,源码Java笔记11--ConcurrentHashMap展示并发,集合,源码

Java笔记11--ConcurrentHashMap展示并发,集合,源码Java笔记11--ConcurrentHashMap展示并发,集合,源码

Java笔记11--ConcurrentHashMap展示并发,集合,源码Java笔记11--ConcurrentHashMap展示并发,集合,源码

3.SynchronizedMap的put和get封装了HashMap的相关方法,通过互斥锁保证线程安全

 

4.ConcurrentHashMap做put时,用CAS+Synchronized保证线程安全,更轻量

Java笔记11--ConcurrentHashMap展示并发,集合,源码

总结:

1.通过底层源码,展示ConcurrentHashMap的数据结构

2.通过put方法,展示了CAS等并发能力

3.通过put方法,引出红黑树话题

4.通过get方法,展示了hash表冲突相关的技能

5.通过基于ConcurrentHashMap的实例,展示了volatile的相关技能