Java篇1-线程池

77 阅读1分钟

有感于有些东西学了会忘,找个地方整理方便回顾。 B站视频 看动画,学Java线程池教程 对应的代码:

github.com/gorhaf/2021…

笔记:

ThreadPoolExecutor的构造函数参数:

常见的拒绝策略:

这三个不建议使用。有危险。线程池数量可无限增长。

execute只适合提交无返回值的任务

用future.cancel()来取消线程池里的任务:

 正在执行的那类,cancel(true)会让任务触发响应中断的代码,且任务继续执行下去。但是不算执行成功,调用get不能得到执行结果,反而抛出图里异常。

任务拒绝策略:

  • ExecutorService 是一个接口,定义了线程池需要实现的方法。

  • ThreadPoolExecutor 是 ExecutorService 的一个具体实现,提供了更详细的线程池配置。

  • Executors 是一个工厂类,提供了创建 ExecutorService 实例的便捷方法。(单例线程池、默认factory工厂方法)

线程池shutdown和shutdownNow的区别:

线程池生命周期:

execute和submit最终触发效果:

ForkJoinPool: 分割合并线程池