线程的执行流程

1.线程池

线程池内部维护了若干个线程,没有任务时,线程处于空b闲状态,如果有任务时就会分配一个空闲的线程给该任务,如果没有空闲线程,则该任务就会被放入工作队列,直到有线程处于空闲状态就分配该线程给它。

2.线程池的优点 

(1)降低资源消耗,复用已创建的线程来降低创建和销毁线程的消耗。
(2)提高响应速度,任务到达时,可以不需要等待线程的创建立即执行。
(3)提高线程的可管理性,使用线程池能够统一的分配、调优和监控。

3.线程池的执行流程

 首先提交一个线程任务,线程池判断是否有空闲线程,如果有,分配空闲线程执行该线程任务;如果没有判断核心线程是否超出;如果没有,创建一个新的核心线程执行任务,如果超出,判断工作队列是否已满,没满则将该任务放于工作队列等待有空闲线程时执行,如果满了,则判断线程数是否超出最大线程数,如果没有,创建非核心线程执行任务(该线程在执行完任务会被回收),如果超出,则执行拒绝策略。

4.线程池的状态

线程池有五种状态:

(1)RUNNING:运行状态。线程池一旦被创建就会处于运行状态,此时线程池中的任务数为0.

 调用shutdown()方法切换到关闭状态。

调用sshutdownNow()方法切换到停止状态。

(2)SHUTDOWN:关闭状态。线程池不会接收新任务,但会处理完工作队列中的剩余任务。

(3)STOP:停止状态。线程池不会接收新任务,也不会处理阻塞队列中的任务,当前执行的任务也会中断。

(4)TIDYING:整理状态。所有任务已运行终止,任务量为0

(5)TERMINATED:终止状态。线程池彻底关闭。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值