chapter6
任务边界确定
对任务的调度与负载均衡
服务的吞吐量与响应
任务串行执行:可能阻塞:网络拥塞、连通性,文件IO 数据库请求,阻塞影响响应,连锁阻塞
任务-线程一一对应:CPU资源(引入了新的资源管理)有限导致线程切换,线程生命周期开销
excuter:不同的任务执行策略,解耦任务的执行与提交,支持生命周期。
线程池:管理线程资源,线程复用:分摊线程生命周期中创建与销毁导致的开销
线程池配置:线程数目(定长||自动调整)、任务生命周期管理(运行、关闭、终止 延迟或定时任务)、任务调度:工作队列
Excutor生命周期:异步执行任务
future:表示任务的生命周期,获取任务状态,阻塞至得到结果,用于协同任务
安全发布:任务提交至excutor,future结果设置
chapter7
取消与关闭
中断:线程间消息传递,非抢占
线程中断策略:对中断请求的处理线程级与服务级策略:退出、暂停、重启
服务非线程所有者,服务的取消策略:退出执行流程,中断信息返回给调用者,交由调用者调用栈处理
调用可中断阻塞函数时,InterruptedException处理两种策略:
传递异常
恢复中断状态
使用future取消
处理不可中断阻塞:
socket io 关闭,抛出SocketException
异步IO close||wakeup 抛出ClosedSelectorExccetion
锁: 内置锁无法中断:使用可中断锁
停止基于线程的服务:
线程所有者:创建线程的类
关闭方式权衡:响应与安全
任务的逻辑提交与线程终止不一定为同一时刻
非正常线程终止:未检查异常:try-catch捕获,通知框架线程终止
chapter8
任务-执行解耦前提:不存在耦合
任务-任务依赖
线程封闭任务
threadLocal:任务生命周期与线程生命周期
线程资源(及其他资源约束)导致饥饿死锁
任务队列管理:调度、拒绝
线程工厂方法定制
原文:https://www.cnblogs.com/qmc1024/p/14087747.html