线程池-线程池工作原理以及状态

本文详细解析了Java线程池的工作原理,包括核心线程、阻塞队列和拒绝策略。同时,介绍了线程池的五种状态:running、shutdown、stop、tidying和terminated,阐述了状态间的转换及其对任务处理的影响。了解这些知识有助于优化并发程序的性能和稳定性。
摘要由CSDN通过智能技术生成

1.线程池工作原理:

主线程执行excute方法:

1)此时如果线程池的没有线程,就会创建线程来执行该任务

2)如果已经有线程,并且线程数小于核心线程数,会继续创建线程来执行新任务

3)如果线程数已经满核心线程数了,新的任务就会暂存到阻塞队列中等待执行

4)如果阻塞队列已经满了,则会创建新线程来执行新的任务

5)如果线程数已达到最大线程数,则会执行拒绝策略

6)拒绝策略有四种,会根据设置的来执行。

2.线程池有哪些状态?

running、shutdown、stop、tidying、terminated

1)线程处于running状态,会接收新来的任务,同时也会执行已添加的任务

2)shutdown状态,调用threadpool.shutdown方法的时候会处于该状态,线程池处于该状态时,会拒绝新的任务,但会把已添加到对列中的任务执行完

3)stop状态,调用threadPool.shutdownNow()方法时会处于该状态,线程池处于该状态,会拒绝新的任务进来,同时也会终止正在执行的任务,队列中的任务也不会执行

4)tidying状态,当线程池调用了shutdown或者shutdownNow方法,线程池中的线程数变成0后,会进入该状态,即线程池中工作状态的线程数为0

5)termenated状态,代表整个线程池终止;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值