APP加网站建设预算多少钱,WordPress感觉很慢,如何开展网络营销推广,建设银行公积金查询网站首页什么是CPU 密集型任务和耗时 IO 型任务 #xff1f; CPU 密集型任务 CPU 密集型任务#xff0c;比如加密、解密、压缩、计算等一系列需要大量耗费 CPU 资源的任务。 耗时 IO 型任务 数据库、文件的读写#xff0c;网络通信等任务#xff0c;这种任务的特点是并不会特别消耗…什么是CPU 密集型任务和耗时 IO 型任务 CPU 密集型任务 CPU 密集型任务比如加密、解密、压缩、计算等一系列需要大量耗费 CPU 资源的任务。 耗时 IO 型任务 数据库、文件的读写网络通信等任务这种任务的特点是并不会特别消耗 CPU 资源但是 IO 操作很耗时总体会占用比较多的时间。
怎么根据任务指定线程数量
CPU 密集型任务
对于这样的任务最佳的线程数为 CPU 核心数的 1~2 倍如果设置过多的线程数实际上并不会起到很好的效果。
因为密集型任务如果创建过多的线程会因为本来计算任务重但是还要进行争夺CPU资源造成上下文切换反而更加导致性能下降。
耗时 IO 型任务
这种任务最大线程数一般会大于 CPU 核心数很多倍。
因为 IO 读写速度相比于 CPU 的速度而言是比较慢的如果我们设置过少的线程数就可能导致 CPU 资源的浪费。
《Java并发编程实战》推荐
《Java并发编程实战》的作者 Brain Goetz 推荐的计算方法线程数 CPU 核心数 *1平均等待时间/平均工作时间通过这个公式我们可以计算出一个合理的线程数量如果任务的平均等待时间长
线程数就随之增加而如果平均工作时间长也就是对于我们上面的 CPU 密集型任务线程数就随之减少。所以总结下来
线程的平均工作时间所占比例越高就需要越少的线程 线程的平均等待时间所占比例越高就需要越多的线程