共享模型之无锁

一、问题提出

共享模型之无锁_无锁

1.为什么不安全

共享模型之无锁_无锁_02
共享模型之无锁_多线程_03

2.解决思路-锁

共享模型之无锁_无锁_04

3.解决思路-无锁

共享模型之无锁_无锁_05
共享模型之无锁_多线程_06

二、CAS 与 volatile

共享模型之无锁_数组_07
共享模型之无锁_无锁_08
共享模型之无锁_无锁_09
共享模型之无锁_java_10

1.慢动作分析

共享模型之无锁_无锁_11
共享模型之无锁_数组_12

2.volatile

共享模型之无锁_多线程_13

3.为什么无锁效率高

共享模型之无锁_数组_14
共享模型之无锁_无锁_15

4.CAS 的特点

共享模型之无锁_java_16

三、原子整数

共享模型之无锁_java_17

四、原子引用

共享模型之无锁_java_18

1.不安全实现

共享模型之无锁_java_19
共享模型之无锁_数组_20

2.安全实现-使用锁

共享模型之无锁_java_21

3.安全实现-使用 CAS

共享模型之无锁_java_22
共享模型之无锁_java_23

4.ABA 问题及解决

共享模型之无锁_数组_24
共享模型之无锁_性能比较_25

共享模型之无锁_多线程_26
共享模型之无锁_性能比较_27
共享模型之无锁_java_28
共享模型之无锁_无锁_29

五、原子数组

共享模型之无锁_无锁_30

1.不安全的数组

共享模型之无锁_性能比较_31

2.安全的数组

共享模型之无锁_性能比较_32

六、字段更新器

共享模型之无锁_数组_33
共享模型之无锁_java_34

七、原子累加器

1.累加器性能比较

共享模型之无锁_无锁_35
共享模型之无锁_数组_36

2.源码之 LongAdder

共享模型之无锁_性能比较_37
共享模型之无锁_无锁_38
共享模型之无锁_多线程_39
共享模型之无锁_数组_40

3.原理之伪共享

共享模型之无锁_数组_41
共享模型之无锁_性能比较_42
共享模型之无锁_无锁_43
共享模型之无锁_java_44
共享模型之无锁_数组_45
共享模型之无锁_多线程_46
共享模型之无锁_数组_47
共享模型之无锁_无锁_48
共享模型之无锁_无锁_49
共享模型之无锁_java_50
共享模型之无锁_数组_51

八、Unsafe

1.概述

共享模型之无锁_数组_52

2.Unsafe CAS 操作

共享模型之无锁_数组_53
共享模型之无锁_性能比较_54
共享模型之无锁_多线程_55