有感于有些东西学了会忘,找个地方整理方便回顾。 B站视频 看动画,学Java线程池教程 对应的代码:
笔记:
ThreadPoolExecutor的构造函数参数:
常见的拒绝策略:
这三个不建议使用。有危险。线程池数量可无限增长。
execute只适合提交无返回值的任务
用future.cancel()来取消线程池里的任务:
正在执行的那类,cancel(true)会让任务触发响应中断的代码,且任务继续执行下去。但是不算执行成功,调用get不能得到执行结果,反而抛出图里异常。
任务拒绝策略:
-
ExecutorService 是一个接口,定义了线程池需要实现的方法。
-
ThreadPoolExecutor 是 ExecutorService 的一个具体实现,提供了更详细的线程池配置。
-
Executors 是一个工厂类,提供了创建 ExecutorService 实例的便捷方法。(单例线程池、默认factory工厂方法)
线程池shutdown和shutdownNow的区别:
线程池生命周期:
execute和submit最终触发效果:
ForkJoinPool: 分割合并线程池