当前位置: 首页 > ai >正文

线程池参数配置

1:判断是否IO密集型,还是计算密集型
CPU 密集型任务:线程池大小设置为 availableProcessors()。
I/O 密集型任务:线程池大小可以设置为 availableProcessors() * 2 或更高。

2:获取当前计算机线程数
Runtime.getRuntime().availableProcessors(); 返回值为当前电脑的线程数如8核16线程
这里的线程指:计算机可并行的线程数目,8核16线程可并行执行16个线程的任务

3:配置线程池
        // 初始核心线程数为 CPU 核心数,最大线程数为 CPU 核心数的 2 倍new ThreadPoolExecutor(AVAILABLE_PROCESSORS,       // 核心线程数AVAILABLE_PROCESSORS * 2,   // 最大线程数   根据IO还是计算密集型填写,IO:*2  CPU: +160L,                        // 空闲线程存活时间TimeUnit.SECONDS,           // 时间单位new LinkedBlockingQueue<>() // 任务队列);AVAILABLE_PROCESSORS:第二步查询到的线程数的值

4:正常调用
for (int i = 0; i < 20; i++) {threadPool.submit(() -> {try {System.out.println("Task executed by " + Thread.currentThread().getName());Thread.sleep(1000); // 模拟任务耗时} catch (InterruptedException e) {Thread.currentThread().interrupt();}});}
threadPool:第三步的线程池对象

备注:更高级的还有动态配置,基于CPU跟核心线程的使用率动态调整

http://www.xdnf.cn/news/1976.html

相关文章:

  • flutter getx 中.obs 的方法refresh方法
  • OpenAI 最新 o3 集成到 Cursor 和 Cline 工作流程中
  • 【leetcode刷题日记】lc.73-矩阵置零
  • U-Mail邮件加速服务:全球链路加速,安全稳定收发
  • OpenCV中的SIFT特征提取
  • ubuntu 20.04 编译运行lio-sam,并保存为pcd
  • 《Piper》皮克斯技术解析:RIS系统与云渲染如何创造奥斯卡级动画短片
  • XYNU2024信安杯-REVERSE(复现)
  • 面试踩过的坑
  • Shell脚本-while循环语法结构
  • 2025 年导游证报考条件新政策解读与应对策略
  • 为何 RAG 向量存储应优先考虑 PostgreSQL + pgvector 而非 MySQL?
  • Linux:进程间通信->匿名管道实现内存池
  • C/C++线程详解
  • Kafka 架构设计和组件介绍
  • 无人机环境适应性与稳定性技术要点!
  • 高效DCDC电源芯片在运动控制器中的应用:设计考量、性能评估与可靠性分析
  • PySide与Qt工具链的深度整合
  • 传统中台的重生——云原生如何重塑政务系统后端架构
  • websheet 之 单元格
  • 计算机网络笔记(十一)——2.4信道复用技术
  • 华为VRP系统简介配置TELNET远程登录!
  • [Unity]-[UI]-[Prefab] 关于Unity UGUI 的布局及组件讲解
  • 霍格软件测试-JMeter高级性能测试一期
  • 热度上升,25西电机电工程学院(考研录取情况)
  • [mysql]数据类型精讲
  • FX10(CYUSB4014)USB3.2(10Gbps)开发笔记分享(1):硬件设计与开发环境搭建
  • JAVA设计模式——(七)代理模式
  • run code执行ts配置
  • Python爬虫实战:获取链jia网北京市海淀区最新租房信息并做分析,以供租房参考