zoukankan      html  css  js  c++  java
  • 如何设置线程池的线程数?

      合理的设置线程池的线程数需要针对不同的任务类型而定,任务类型可以分为cpu密集型、IO密集型和混合型。

    1)cpu密集型

      cpu密集型指的是线程处理任务时,cpu参与计算的时间比较多,这种情况下,如果设置的线程数过多,会增加上下文的切换次数,带来额外的开销。

    线程数的设定公式是:线程数=(cpu核心数+1)。

    2)IO密集型

      IO密集型是指在处理任务时,IO过程所占用的时间较多,在这种情况下,线程数的计算方法可以分为两种:

      方法一:线程数=cpu核心数*2,cpu所占用时间不多,可让cpu在等待IO的时候去处理其他任务,充分利用cpu。

      方法二:线程等待时间比例越多,需要更多的线程,而线程cpu所占时间越多,则需要更少线程数。

          线程数=((线程等待时间+线程cpu时间)/线程cpu时间)*cpu核心数。

    3)混合型

      对于混合型,可以将任务划分成cpu密集型任务与IO密集型任务,分别针对这两种任务使用不同的线程池去处理。  

  • 相关阅读:
    PHP小技巧
    PHP Ajax跨域解决
    单点登录
    Linux 常用命令
    php面向对象--继承
    vueDemo
    vueSource
    vuex
    Vue.js
    关于前后端分离
  • 原文地址:https://www.cnblogs.com/menbo/p/13299870.html
Copyright © 2011-2022 走看看