https://github.com/codeprometheus/java-concurrency
Java 并发编程,同步原语
https://github.com/codeprometheus/java-concurrency
aqs cas concurrency java jmm lock thread threadpool
Last synced: about 2 months ago
JSON representation
Java 并发编程,同步原语
- Host: GitHub
- URL: https://github.com/codeprometheus/java-concurrency
- Owner: CodePrometheus
- License: mit
- Created: 2020-10-07T10:24:45.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-09-21T08:12:58.000Z (over 2 years ago)
- Last Synced: 2023-03-04T00:53:09.604Z (over 2 years ago)
- Topics: aqs, cas, concurrency, java, jmm, lock, thread, threadpool
- Language: Java
- Homepage:
- Size: 8.11 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Java-Concurrency
Java并发编程
## 线程
创建线程的两种方法
正确启动线程
正确停止线程
线程六大生命周期
Thread和Object中的重要方法
线程的属性
未捕获异常的处理
线程安全问题
ThreadPool
ThreadLocal
线程核心知识总结## 锁
乐观与悲观锁
公平与非公平锁
可重入锁与非可重入锁:以ReentrantLock为例
共享锁和排他锁:以ReentrantReadWriterLock读写锁为例
自旋锁和阻塞锁
可中断锁
锁优化## 死锁
死锁的发生
定位死锁
哲学家进餐问题与解决
避免死锁
活锁问题
饥饿## Synchronized
作用用法
性质
原理
缺陷## 原子类
基本类型原子类
AtomicInteger
AtomicLong
AtomicBoolean
数组类型原子类
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
引用类型原子类
AtomicReference
AtomicStampedReference
AtomicMarkableReference
升级类型原子类
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicReferenceFieldUpdater
Adder累加器
LongAdder
DoubleAdder
Accumulator累加器
LongAccumulator
DoubleAccumulator## CAS
原理
应用场景
Java中如何利用CAS实现原子操作
缺点## 不可变性
final的作用与用法
不可变性
栈封闭## 并发容器
ConcurrentHashMap
CopyOnWriteArrayList
并发队列
阻塞队列
非阻塞队列## 控制并发流程
各个线程之间相互协调
CountDownLatch(一等多,多等一)
Semaphore(控制并发总量)
Condition
CyclicBarrier## AQS
state
控制线程抢锁和配合的FIFO队列
期望协作工具类去实现的获取/释放等重要方法## Future
Future接口
主要方法
FutureTask
注意点
CompletableFuture## JMM
内存模型
重排序
可见性
原子性
常见问题## Queue
ArrayBlockingQueue
LinkedBlockingQueue
LinkedTransferQueue
PriorityBlockingQueue
SynchronousQueue
DelayQueue