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

线程池参数配置

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跟核心线程的使用率动态调整

相关文章:

  • RK3588芯片NPU的使用:yolov8-pose例子图片检测在安卓系统部署与源码深度解析(rknn api)
  • 【Hive入门】Hive数据导出完全指南:从HDFS到本地文件系统的专业实践
  • form表单提交前设置请求头request header及文件下载
  • 佐航BYQ2321直阻变比二合一全面升级!
  • Linux进程地址空间
  • Zephyr kernel Build System (CMake)介绍
  • 如何配置Spark
  • 技术视界 | 从自然中获取智慧: 仿生机器人如何学会“像动物一样思考和行动”
  • 基于 Python(selenium) 的今日头条定向爬虫:根据输入的关键词在今日头条上进行搜索,并爬取新闻详情页的内容
  • 使用spring boot vue 上传mp4转码为dash并播放
  • Pycharm(六):可变与不可变类型
  • 3.3 Spring Boot文件上传
  • 2025年深度学习模型发展全景透视(基于前沿技术突破与开源生态演进的交叉分析)
  • 【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明
  • Linux系统下的常用网络命令
  • 如何在SOLIDWORKS中高效管理文件属性?
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • macOS 更新后找不到钥匙串访问工具的解决方案
  • Flutter Dart中的函数参数 默函数的定义 可选参数 箭头函数 匿名函认参数 命名参类数 闭包等
  • 如何通过python连接hive,并对里面的表进行增删改查操作
  • 魔都眼|买买买,老铺黄金新店开业被挤爆:有人排队5小时
  • 三大上市猪企:前瞻应对饲料原材料价格波动
  • 首部关于民营经济发展的基础性法律,有何亮点?专家解读
  • 体重管理门诊来了,瘦不下来的我们有救了?|健康有方FM
  • 荆州市委书记汪元程:全市各级干部要做到慎微、慎初、慎独、慎友
  • 海尔·2025青岛马拉松两选手被终身禁赛:违规转让号码、穿戴他人号码