JAVA并发总结
2021-08-29 17:22:36 0 举报
AI智能生成
java并发总结
作者其他创作
大纲/内容
进程与线程区别
为什么使用多线程?(优点)
使用多线程并发需要考虑得问题(缺点)
新建状态(New)
就绪状态(Runnable)
运行状态(Running)
等待阻塞
同步阻塞
其他阻塞
阻塞状态(Blocked)
死亡状态(Dead)
线程状态
示例
Thread
Runnable
FutureTask
三种方式对比
线程创建
示例A
示例B
wait()
虚假唤醒
notify() 和notifyAll()
join()
sleep()
sleep与yield方法的区别
yield()
interrupt()
isInterrupted()
interrupted()
线程中断
常用方法
线程死锁
setDaemon()
守护线程
分时调度模型
抢占式调度模型
线程调度算法(java)
基础知识
实例域
静态域
数组
共享数据
抽象结构模型(待补充)
JMM内存模型
指令重排序
原子性
可见性
有序性
三大特性
并发理论(JMM)【待补充】
实例方法(锁类的实例对象)
实例对象(锁类的实例对象)
静态方法(锁类对象)
class对象(锁类对象)
任意实例对象Object(锁任意对象object)
使用
monitor机制
内存含义
synchronized
volatile
synchronized 和 Volatile的比较
并发关键字
锁存在的层次
锁释放的时机
锁获取的方式
锁的状态是否可判断
锁是否可重入
适合的场景
Lock锁与Synchronized关键字比较
void park()
void unpark(Thread thread)
void parkNanos(long nanos)
LockSupport工具类
设计意图
如何使用AQS实现自定义同步组件(待补充)
head
tail
prev
next
静态内部类Node
waitStatus
方法
流程
独占方式
共享方式
注意要点
状态信息state
ConditionObject
FIFO的双向队列
AbstractQueuedSynchronizer(AQS)抽象同步队列
与Object的wait/notify方法的机制对比
与Object的wait/notify方法的使用对比
底层数据结构
await实现原理
signal/signalAll实现原理
Condition机制
数据结构
获取锁
释放锁
公平锁
非公平锁
lockInterruptibly可中断方式获取锁
tryLock超时等待方式获取锁
单独唤醒部分线程(伪代码)
等待/通知机制
ReentrantLock可重入锁
实现原理
特性
获取
释放
写锁writerLock
读锁readerLock
读写锁-小结
ReentrantReadWriteLock可重入读写锁
CAS
Lock锁
生产者-消费者问题
并发实践
原子更新基本类型
原子更新数组类型
原子更新引用类型
原子更新字段类型
原子操作类
CountDownLatch和join方法的区别
原理
倒计时器CountDownLatch
循环栅栏CyclicBarrier
资源访问控制器Semaphore
并发工具
线程池状态
线程池参数
ExecutorService 接口
Executors.newCachedThreadPool();
Executors.newFixedThreadPool ();
Executors.newScheduledThreadPool();
Executors.newSingleThreadExecutor();
缺陷
Executors工具类
ScheduledThreadPoolExecutor任务调度器
ref
get()
cancel()
run()
应用场景
对象状态
内部状态转换
线程池Executor
Map使用对比
ConcurrentHashMap
使用场景
内存泄漏
不支持继承性
问题
ThreadLocal
优点
缺点
读写规则
CopyOnwriteArrayList
列表
LinkedBlockingQueue:链表实现的有界阻塞队列
ArrayBlockingQueue:数组实现的有界阻塞队列
PriorityBlockingQueue:支持优先级的无界阻塞队列
DelayQueue:存放实现了Delayed接口的无界阻塞队列
SynchronousQueue:不存储任何元素的同步阻塞队列
BlockingQueue阻塞队列
LinkedBlockingDeque:由链表组成的无界阻塞双向队列
BlockingDeque阻塞双向队列
TransferQueue传输队列
阻塞队列
ConcurrentLinkedQueue并发链接队列
ConcurrentLinkedDeque并发链接双向队列
非阻塞队列
总结
队列
并发容器
队列使用和应用场景总结,待补充
JAVA并发总结
0 条评论
回复 删除
下一页