并发编程
2022-12-20 17:18:05 4 举报
登录查看完整内容
并发编程总纲
作者其他创作
大纲/内容
AQS
重量级琐&轻量级琐
重入琐概念
Synchroniezed 重入实现原理
其他琐实现原理
重入琐
死锁
饥饿
琐升级过程
Synchroniezed
Lock
CAS
琐
分支主题
实现Runnable接口
基础Thread类重写run方法
创建&使用
New(新建)
Ready(就绪)
Running(运行中)
Waiting(等待状态)
Time-Waiting(超时等待状态)
Blocked(阻塞状态)
Terminated(终止状态)
生命周期
Future
FutureTask
Thread
ThreadLocal
使用场景
核心线程数
corePoolSize
最大线程数
maximumPoolSize
空闲线程存活时间
keepAliveTime
keepAliveTime 时间单位
TimeUnit
ArrayBlockingQueue
LinkedBlockingDeque
PriorityBlockingQueue
SynchronousQueue
......
BlockingQueue<Runnable>(任务队列)
线程工厂
ThreadFactory
拒绝策略
RejectedExecutionHandler
构造方法
固定大小的线程池 核心线程数等于最大线程数 有线程挂掉后会自动创建新的线程
newFixedThreadPool
单线程的线程池 核心线程等于最大线程数=1 有线程挂掉后会自动创建新的线程
newSingleThreadExecutor
核心线程数0 最大线程数Integer.MAX_VALUE 空闲线程60秒回收 可创建的线程数由操作系统决定
newCachedThreadPool
任务调度的线程池 支持定时以及周期性执行任务
newScheduledThreadPool
jdk1.8新增的 该池维护足够的线程以支持给定的并行度级别,并且可以使用多个队列来减少争用。并行度级别对应于活跃地从事或可用于从事任务处理的线程的最大数量。线程的实际数量可能会动态增加或减少。工作窃取池不能保证提交的任务的执行顺序。
newWorkStealingPool
Executors
创建方式
submit
execute
工作流程
不指定默认使用
AbortPolicy 中止策略
CallerRunsPolicy 由调用者线程执行
DiscardPolicy 忽略当前任务
DiscardOldestPolicy 忽略最早的提交的任务
实现 RejectedExecutionHandler 接口
自定义策略
ctl
workers
allowCoreThreadTimeOut
源码分析
线程池状态流转
ThreadPool
并发编程
0 条评论
回复 删除
下一页