(JUC)核心线程 和 救急线程的区别;Executors-固定大小线程池&&单线程线程池

核心线程 和 救急线程的区别

救急线程是有个生存时间的,它执行完任务了,过了一段时间,没有新任务了,救急线程就会销毁掉,变成结束的状态

核心线程没有生存时间,它执行完任务后,它仍然会被保存在线程池中,不会让核心线程结束,会让核心线程一直去运行

KeepAliveTime 生存时间、unit时间单位,这两个参数就是针对于救急线程的

 

使用救急线程的前提,是要配合有界队列的使用。

如果队列选择了有界队列,那么任务超过了队列大小时,会创建 maximumPoolSize - corePoolSize 数目的线程来救急。

如果队列选择的是无界队列,那么就不会用到救急线程,任务会一直存入无界队列,然后由核心线程来轮流去处理无界队列里的任务。

如果线程到达 maximumPoolSize 仍然有新任务这时会执行拒绝策略。拒绝策略 jdk 提供了 4 种实现,

但是很多第三方框架都不是使用的jdk提供的,而是选择使用 更功能上的增强,在这些 功能上进行扩展

 

扫描二维码关注公众号,回复: 15681021 查看本文章

Executors-固定大小线程池

Executors-单线程线程池

猜你喜欢

转载自blog.csdn.net/QRLYLETITBE/article/details/129308639