推荐阅读:
https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html
1.线程池是什么?
定义:工具
解决问题:在并发环境下,系统不能够确定在任意时刻中,有多少任务需要执行,有多少资源需要投入。
用途:管理和复用线程,减少线程的创建和销毁开销。
总结:线程池是用来管理和复用线程的工具,它可以减少线程的创建和销毁开销。
2.线程池的核心参数?
4+2+1=7
3.线程池的工作流程?
任务提交 → 核心线程执行 → 任务队列缓存 → 非核心线程执行 → 拒绝策略处理。
if 正在运行的线程数=核心线程数:放入等待队列
else if 等待队列满了&&正在运行的线程数=最大线程数:拒绝策略的执行
最后:线程执行完毕后,线程并不会立即销毁,而是继续保持,在池中等待下一个任务。
但是,当非核心线程空闲时间超出存活时间(当前线程数量大于核心线程数时),线程会被回收。
总结为5种情况
4.拒绝策略有哪些?
【这个图精辟!】
5.线程池有哪几种阻塞队列?
五种。
参与评论
手机查看
返回顶部