当前位置: 首页 > 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,并对里面的表进行增删改查操作
  • 强政神鸟——故宫里的乌鸦
  • 明查|把太平洋垃圾污染问题甩锅中国,特朗普用的是P过的图
  • 美联储官员:货币政策不会立即改变,金融市场波动或致美国经济增长承压
  • 远程控制、窃密、挖矿!我国境内捕获“银狐”木马病毒变种
  • 2025全球智慧城市指数排名揭晓,阿布扎比跃升至第五位
  • 嫦娥五号月球样品将借给这些国家机构