线程数设置多少合适(线程数量怎么设置才最合理)

在程序开发中,常常为了提高性能,我们使用多线程进行开发,而针对多线程常常使用线程池来处理,线程池可以带来很多好处,有兴趣的可以看看之前干货君写的文章:线程池ThreadPool看完这篇就够了

线程数设置多少合适(线程数量怎么设置才最合理)

那么现在有个问题来了,在应用中,针对多线程开发,线程数量我们要怎么设置才最合理呢?是不是越多越好?

当然不是,在多线程中,不得不提的上下文切换

上下文切换

首先在单核CPU中,也是可以处理多线程的,只是CPU通过给每个线程分配CPU时间片来处理的,假设我们有A、B两个线程执行任务,CPU在非常短的时间(时间片)执行A线程,然后再执行B线程,如此往复执行,不停的切换(切换时保持之前的状态),由于时间片的间隙非常短,让我们感觉是同时执行的,即多线程,而这种切换就叫上下文切换。

从上面的描述我们可以知道,上下文切换,必然会出现之前的状态保持和启动,必然会导致性能的损耗,因此多线程的数量多就不一定快,也就说明了线程数量不是越多越好。

那么怎么合理的设置线程数量呢?

多线程任务分类

通常针对多线程一般分为两类场景:

IO密集型:IO密集型通常指程序运行期间,大部分的耗时是用来进行I/O操作,而这个时间线程不会占用CPU来处理。

CPU密集型:CPU密集型通常是指系统运行时会消耗掉大量的CPU资源,例如需要大量的计算,一些复杂运算,逻辑处理之类的。

因此针对不同场景线程的数量设置也不一样

I/O密集型

由于系统运行大部分都是在进行I/O交互,并不会暂用cpu资源,因此可以提高线程数,对线程数可以用以下计算公式:

最佳线程数 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU核心数

这样假设线程无等待,最佳线程数 = 1 * CPU核心数,而实际上线程一般都会存在等待时间,可以保守认为等待时间和线程CPU时间一样,即 2 * CPU核心数,因此一般都设置为

最佳线程数 = CPU核心数 * 2

CPU密集型

对于CPU密集型的,绝大部分都是利用cpu资源进行计算,因此一般对于此类场景,最佳线程数量设置为CPU核心线程数+1,以充分利用多核心CPU的处理能力。

最佳线程数 = CPU核心数 + 1

java获取cpu核心数的方法如下:

Runtime.getRuntime().availableProcessors()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年9月8日 下午4:18
下一篇 2023年9月8日 下午4:20

相关推荐

  • 打印机怎么扫描文件成电子版(怎么把纸质文件扫描成电子版)

    怎样扫描纸质文件成电子档?扫描纸质文件成电子档是将纸质文件转化为数字形式的过程。这项技术已经得到了广泛的应用。将纸质文件转化为电子档,可以方便地存储在计算机或云端,不再需要大量的实体空间来存储大量的纸质文件。此外,通过电子档案管理系统,可以更加方便地管理和查找文件,提高工作效率。电子档可以通过电子邮件、云存储等方式轻松地分享给他人,方便了文件的传递和共享。 …

    2023年4月6日
    250
  • 小猪佩奇角色表介绍(小猪佩奇的全部角色)

    在老哟的世界观里,所谓的朋友就是有共同话题的一群人,而当你觉得某个人不错,试图去交新朋友的时候,也会去接触他(她)所在的世界——读他推荐的书,看她在追的剧,吃它分享的瓜。对待我们的孩子,也是一样。他们是有独立人格的存在,有自己的小世界,所谓家长,即是可以树立正确价值标准的亲密伙伴吧。 铺垫这么多,是想分享我和孩子们的交际方式——聊动画。在孩子们的世界里,动画…

    2023年5月4日
    170
  • 谭谈交通版权属于谁?为什么游戏公司对此有版权

    10日,《谭谈交通》栏目主持人@谭乔发微博称,该节目视频被全网下架,成都游术文化传播的公司以版权理由提出千万赔偿。不少人好奇,《谭谈交通》版权属于谁?为什么该公司声称对该节目有版权

    2022年9月15日
    440
  • 法国公立大学电影专业(法国公立大学排名榜)

    创立于1289年的蒙彼利埃大学是世界上最古老的大学之一,她是由当时蒙彼利埃的医学院、艺术院与法学院这三个主要学科合并而成。蒙彼利埃大学秉承优良的传统,在接下来的几个世纪中,成功形成了自身的特色并在世界

    2022年9月18日
    370
  • a向量乘以b向量的公式(平面向量运算公式大全)

    平面向量公式大全

    2022年12月21日
    370
  • 坐飞机流程详细步骤(新人第一次坐飞机步骤)

    据说中国有10亿人还没做过飞机,今天作为一个10多年的飞行工作者整理了一套超详细的坐飞机详细流程,从上飞机到下飞机。预留充足时间办手续✈️从上飞机到下飞机机全套详細流程。1、提前2据说中国有10亿人还

    2022年9月28日
    760
  • 七叶子山东话什么意思(枣庄方言的称谓介绍)

    枣庄人的称谓有很多比较特别的地方,有的还会让人感到不解。 一、亲属、亲戚的称谓 ○曾祖父——男老太太。 ○曾祖母——女老太太。 ○祖父——老爷。 ○祖母——奶奶,奶。 ○外祖父——外老爷。 ○外祖母——外老娘。 ○父亲——达,爹,爷。 ○母亲——娘,俺娘。 ○伯父——大爷。 ○伯母——大娘。 ○姑姑——姑娘。 ○公公——老公公。 ○婆婆——老婆婆。 ○岳父—…

    2023年4月20日
    940
  • u盘装系统进入pe蓝屏(u盘装电脑进pe蓝屏怎么办)

    (u进入盘装系统pe蓝屏)如今,U盘被广泛使用,不仅可以复制和存储文件,还可以用于重新安装系统。但在U盘装系统的过程中,难免会遇到大大小小的问题,下面小编就为大家介绍三个常见的问题及解决方案。1、u盘装系统找不到硬盘这种

    2022年9月13日
    1430
  • 利润怎么算公式(利润的三个计算公式

    今天我们继续来学习第二个开店做生意必须知道的基本公式【利润】和【利润率】 一、利润计算公式: 利润=毛利-费用(费用一般包含:店租、水电费、员工薪资福利等经济用途费用) 利润率=利润÷营业额 三、案例 1、奶茶店每月【营业额】计算 假设奶茶店饮品的单价一般在7~15元,正常情况下奶茶店一天大概能卖出150杯左右, 每杯单价就按10元算,一天的营业额就是150…

    2023年3月15日
    750
  • 阿呆的父母长什么样子(阿呆父母到底是谁)

    这个在动漫中其实并没有提到,也可以看出是作者设置的一个迷点。但是从阿呆的举止和谈吐来看,阿呆的家庭条件应该是很不错的,毕竟他们家的房子比小新家的大多了,而且阿呆也从来没有提过自己是单亲家庭。因此阿呆的父亲应该只是没有出场过,并不代表没有这个人。阿呆从小就是用刀叉吃饭的,也可以看出家庭教育比较严格。  一、阿呆明明非常爱干净,为什么还有流着鼻涕不擦 看过动漫…

    2022年12月23日
    1180

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信