线程池(一、基础理论)

一、概念

可以简单理解为统一管理线程生命周期的池子

作用

  • 提高响应速度;避免人为的创建和销毁线程带来的不便,交由线程池统一管理
  • 重复利用线程,节省资源

二、任务处理流程

 

三、核心属性

线程池关键属性
属性说明备注
corePoolSize线程池中的核心线程数
 
maximumPoolSize线程池中的最大线程数 
workQueue
(BlockingQueue<Runnable> )
阻塞队列存储工作任务
keepAliveTime
等待工作的空闲线程的超时(以纳秒为单位)
1、当工作线程超过核心线程数时,
针对非核心线程启用该时间,超时则关闭非核心线程

2、allowCoreThreadTimeOut=ture时,

核心线程也启用该时间,超时则关闭;

allowCoreThreadTimeOut
是否允许核心线程超时

true:核心线程达到keepAliveTime后关闭

false:核心线程一直等待任务

handler
(RejectedExecutionHandler )
拒绝执行策略处理器

在线程池饱和或关闭时,启用该策略,常用有以下几种

1、AbortPolicy (默认,抛异常)

2、CallerRunsPolicy

3、DiscardOldestPolicy

4、DiscardPolicy

 

workers

包含所有工作线程的集合。

只有当持有mainLock才可访问

 

每一个Worker本身都实现了Runnable接口

largestPoolSize
曾经出现过的最大线程数一般用于跟踪记录线程池是否已满等监控操作
completedTaskCount
完成的任务数 
threadFactory
线程工厂,用于创建新线程 

 

 

 

 

 

 

 

四、线程池中的状态

注:线程池各种状态对当前池中的任务和新任务处理逻辑是不同的、

 

  • RUNNING         初始状态
  • SHUTDOWN        调用shutdown()之后
  • STOP            调用shutdownNow()之后
  • TIDYING         从Shutdown或Stop转成TIDYING 
  • TERMINATED      然后从TIDYING立刻转成TERMINATED

 

五、线程池实现的基本原理

  • 线程池 通过AtomicInteger的32位int值表示状态和线程个数,
  • 通过BlockingQueue实现阻塞队列,
  • 通过workers集合存放工作任务,因为Worker本身就是实现Runnable接口,直接调用run方法就可以启动任务线程。
  • 通过runWorker(Worker w)方法,不断的去阻塞队列获取任务并执行来达到线程复用的目的(参考getTask()方法)。

 

六、问题

  1. AtomicInteger下的int value是如何表示线程状态和线程个数的?
  2. 线程池中的核心参数的作用是什么?
  3. 不同的线程状态,针对池中的任务和新任务是怎么处理的?
  4. 线程是如何做到复用的?
  5. 拒绝策略何时执行?如何区分使用不同的拒绝策略?
  6. 为什么阿里手册不建议使用Executors创建线程?各个创建方式使用场景和弊端是什么?
  7. 当达到核心线程数时,为什么采用直接丢队列中,而不是直接创建非核心线程来执行任务?
  8. 当线程发生中断时会发生什么情况?
  9. 总结一下线程池的设计思想及源码?

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园失物招领系统管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、论坛管理、公告信息管理、失物招领管理、失物认领管理、寻物启示管理、寻物认领管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 校园失物招领系统管理系统可以提高校园失物招领系统信息管理问题的解决效率,优化校园失物招领系统信息处理流程,保证校园失物招领系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 ,管理员权限操作的功能包括管理公告,管理校园失物招领系统信息,包括失物招领管理,培训管理,寻物启事管理,薪资管理等,可以管理公告。 失物招领管理界面,管理员在失物招领管理界面中可以对界面中显示,可以对失物招领信息的失物招领状态进行查看,可以添加新的失物招领信息等。寻物启事管理界面,管理员在寻物启事管理界面中查看寻物启事种类信息,寻物启事描述信息,新增寻物启事信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值