j并发编程
2024-10-28 23:20:23 1 举报
AI智能生成
Java并发在面试和工作中的总结
作者其他创作
大纲/内容
多线程
Java线程安全的体现
原子性
可见性
有序性
数据的一致性方案
事务管理
锁机制
版本控制
Java线程
创建线程的方式
继承Thread类
实现Runnable接口
实现Callable & FutureTask
线程的状态
并发安全
synchronized
JVM对synchronized的优化
锁膨胀/锁升级
锁消除
锁粗化
自适应自旋锁
Lock
可重入性
(非)公平锁
公平锁
非公平锁
调度
限时
中断
Java的中断机制
interrupt、isInterrupt、interrupted
sleep、wait、join、park
RUNNABLE、BLOCKED、WAITING
Condition
Lock源码
void lock()
void lockInterruptibly()
boolean tryLock()
boolean tryLock(long time, TimeUnit unit)
void unlock()
Condition newCondition()
volatile
volatile作用
保证变量对所有线程的可见性
禁止指令重排序
指令重排序的原理
和synchronized的对比
synchronized
volatile
CAS
CAS缺点
存在ABA问题
可能循环时间长、开销大
只能保证一个共享变量的原子操作
不能所有的锁都使用CAS?
AQS
基本介绍
底层实现
state状态
state是int而非boolean类型,why?
FIFO队列·
内部类Node
线程对象(thread)
节点在队列中的等待状态(waitStatus)
前后指针(prev、next)
获取/释放锁的方法实现
主要任务
同步状态(如计数器)的原子性管理
线程的阻塞和解除阻塞
队列
Sync
Java中如何实现乐观锁
CAS(Compare and Swap)
版本号
时间戳
线程池
工作原理
线程池种类
构造函数中的七个参数
工作队列满了后的拒绝策略
关键函数
shutdown()方法
shutdownNow()
10/25
收藏
收藏
0 条评论
下一页