专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

为何使用JAVA线程池

1 线程分类
--用户级线程
用户维护,存在于用户空间;
--内核线程
系统内核级线程,存在于内核空间;

java线程启动,调用库内核调度器,生成的是内核级线程,共享CPU

2 使用线程池优势
--多线程并发执行时,CPU时间片到了之后,切换上下文耗费资源;
--线程稀缺资源,避免资源消耗,可以资源复用;
--减少线程的创建和消亡,提高响应性能;

3 java常用线程池

Executor execute方法
ExecutorService 定义了 shutdown等等具体行为方法
AbstractExecutorService
SingleThreadPool 和 newCachedTheadPool 【阿里规约不建议,详情看源码,有缺陷】

可以通过自己创建的方式,new ThreadPoolExecutor 创建线程池

核心参数
corePoolSize 核心处理业务的线程数
maxinumPoolSize 最大线程数
keepAliveTime 非核心数线程保持的时长
Time unit 单位是毫秒还是秒
workQueue 任务阻塞等待队列BlockingQueue
RejectExecuttionHandel 拒绝任务策略【丢弃任务抛异常 or 拒绝任务,自己管理执行】

4 线程池状态
Running 可接受新任务
Shutdown 不接受新任务,但是处理已添加的任务
stop 不接受新任务,直接终止处理任务
tidying 状态
terminled 阻止线程池,然后消亡

合理设置线程池的大小
CPU密集型 频繁计算的,可参考 线程数=CPU核数 N 核 + 1
I/O密集型 后台异步IO操作,可参考 线程数=CPU核数 N 核*2 + 1

线程池内部工作原理过程如下图:

109_1.png

文章永久链接:https://tech.souyunku.com/19258

未经允许不得转载:搜云库技术团队 » 为何使用JAVA线程池

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们