第8章 线程池的使用
文章目录
8.1 在任务与执行策略之间的隐性耦合
有些类型的任务需要明确地指定执行策略
- 依赖性任务
- 使用线程封封闭机制的任务
- 对响应时间敏感的任务
8.1.1 线程饥饿死锁
线程池中的任务需要无限期地等待一些必须由池中其他任务才能提供的资源或条件
8.1.2 运行时间较长的任务
8.2 设置线程池的大小
8.3 配置ThreadPoolExecutor
8.3.1 线程的创建与销毁
8.3.2 管理队列任务
对于Executor,newCachedThreadPool工厂方法是一种很好的默认选择,它能提供比固定大小的线程池更好的排队性能。当需要限制当前任务的数量以满足资源管理需求时,那么可以选择固定大小的线程池,就像在接受网络客户请求的服务器应用程序中。如果不进行限制,那么很容易发生过载问题