Java8 关于最佳线程数

作者: 没有颜色的菜 | 来源:发表于2018-09-09 21:35 被阅读4次

    前言

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

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


    1695055395.jpg

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

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

    Java 中获取可用的 CPU 数

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

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

    相关文章

      网友评论

        本文标题:Java8 关于最佳线程数

        本文链接:https://www.haomeiwen.com/subject/qrgdgftx.html