concurrent包


locks(锁)

锁的种类
- 公平锁/非公平锁
- 可重入锁
- 可中断锁
- 独享锁/共享锁
- 互斥锁/读写锁
- 乐观锁/悲观锁
- 分段锁
- 偏向锁/轻量级锁/重量级锁
- 自旋锁
锁的优化
- 减少锁持有时间
- 减小锁粒度
- 锁分离
- 锁粗化
- 锁消除
AQS
参考链接
参考1
参考2
AQS、ReetrantLock、Condition实现原理
重要方法:
- isHeldExclusively()
- tryAcquire(int)
- tryRelease(int)
- tryAcquireShared(int)
- tryReleaseShared(int)
Lock
重要方法
- lock()
- lockInterruptibly() throws InterruptedException
- tryLock()
- tryLock(long time, TimeUnit unit) throws InterruptedException
- unlock()
- Condition newCondition()
ReentrantLock

参考链接
参考1
ReentrantReadWriteLock

condition
atomic(原子变量)
- AtomicInteger
- AtomicLong
- AtomicBoolean
- AtomicReference
- AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray
CAS
Unsafe类
ABA问题
executor(线程池)
框架类图

-
ThreadPoolExecutor
关键参数
- workQueue(排队策略)
- threadFactory
- RejectedExecutionHandler(饱和策略)
常用方法
-
Executors
创建线程池
- newFixedThreadPool
- newCachedThreadPool
- newSingleThreadExecutor
- newScheduledThreadPool
collections(并发容器)
List和Set

Map

Queue

-
ArrayBlockingQueue
final ReentrantLock lock; private final Condition notEmpty; private final Condition notFull;notEmpty和notFull是锁的两个Condition条件
实现原理 -
LinkedBlockingQueue
-
LinkedBlockingDeque
-
ConcurrentLinkedQueue
-
ConcurrentLinkedDeque
tools(同步工具)
- CountDownLatch
- CyclicBarrier
- Semaphore
java内存模型
内存模型概述

- 主内存
- 工作内存
Java内存模型与硬件内存架构的关系

特性
- 原子性
- 可见性
- 有序性
重排序
- 指令重排
- 编译器重排
as-if-serial
happens-before 原则
- 程序顺序原则
- 锁规则
- volatile规则
- 线程启动规则
- 传递性
- 线程终止规则
- 线程中断规则
- 对象终结规则
volatile内存语义
- 可见性
- 禁止重排优化
内存屏障(Memory Barrier)
- LoadLoad Barriers
- StoreStore Barriers
- LoadStore Barriers
- StoreLoad Barriers
1289

被折叠的 条评论
为什么被折叠?



