Java8 关于最佳线程数

前言

关于最佳线程数的设置,总是那么模糊,不知道该如何设置,偶然间在 Java 并发编程实践 里看到了对他的定义:

要使处理器达到期望的使用率,线程池的最佳大小等于:


1695055395.jpg

需要注意的是,我们需要制定一个 CPU 的利用率,如果是 100%,那么线程数就取决于Wait Time / Compute Time

  • 如果我们的任务是计算型任务,那么等待时间为零,那么线程数设置为 CPU + 1
  • 如果我们的任务是 IO 密集型,那么等待时间不为零,需要加大线程数

Java 中获取可用的 CPU 数

Int NUM_CPU = Runtime.getRuntime().availableProcessors();

我们可以在很多类库里边看到它的身影,很多需要线程池的类库,凡是不那么抢系统资源的都会通过这个值设置线程池的大小

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 13,879评论 4 56
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,670评论 25 709
  • 在茫茫沙漠中,有一条路,是中国最重要的一条路,它有一个特别的名字“丝绸之路”。 西安 西安,西安是很多朝代的皇宫所...
    懒猫鳶阅读 3,788评论 0 0
  • 好蓝瘦,好香菇。
    放牧少年阅读 1,196评论 0 0
  • 定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状...
    yangzai阅读 2,523评论 0 0