码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何选择线程数量


    本文目录

    • CPU密集型
    • IO密集型
    • 选择线程数量
    • 区别
    • 总结

    CPU密集型

    CPU密集型 又叫做计算密集型,系统运作大部分是CPU Loading,CPU密集就是该任务需要大量的运算,而没有阻塞,CPU一直全速运行

    IO密集型

    IO密集型指的是在系统运行过程中,大部分的状况是CPU在等I/O的读/写操作,此时CPU Loading并不高。因为认为本身需要大量I/O操作

    选择线程数量

    公式:最佳线程数目=(线程等待时间与线程CPU时间之比+1)CPU数目
    对于 CPU密集型 ,线程等待时间/线程CPU时间 接近于0,所以设置线程数为CPU的数目
    线程数目不易太大,如果线程数太大就会造成线程切换,降低效率
    在实际情况中一般CPU密集型线程数量设置为
    CPU数+1*
    在《Java并发编程实践》中 计算密集型的线程恰好在某时因为发生一个页错误或者因其他原因而暂停,刚好有一个“额外”的线程,可以确保在这种情况下CPU周期不会中断工作。
    所以设置为CPU数+1是一个经验值

    对于I/O密集型 ,线程CPU 使用率较低,程序中会存在大量的 I/O 操作占用时间,导致线程空余时间很多。线程等待时间/线程CPU时间 大等于1,设置线程数为CPU数*2,后续根据实际情况进行动态的调整

    区别

    IO密集型:大量网络,文件操作
    CPU 密集型:大量计算,cpu 占用越接近 100%, 耗费多个核或多台机器

    总结

    即使有上面的简单估算方法,也许看似合理,但实际上也未必合理,都需要结合系统真实情况(比如是IO密集型或者是CPU密集型或者是纯内存操作)和硬件环境(CPU、内存、硬盘读写速度、网络状况等)来不断尝试达到一个符合实际的合理估算值。

  • 相关阅读:
    【前端笔记】记录一个能优化Echarts Geo JSON大小的网站
    Spark【Spark SQL(二)RDD转换DataFrame、Spark SQL读写数据库 】
    2-Dubbo架构设计与底层原理-SPI源码分析
    SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截
    腾讯后端开发高频问题和答案
    Mysql-库的操作
    ES数据库简单查询
    leetcode每天5题-Day37
    C++ fstream类移动读写指针和字节数形式获取该指针位置(seekp、seekg、tellg、tellp)
    80端口映射外网方法
  • 原文地址:https://blog.csdn.net/m0_74787523/article/details/127800870
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号