这里写目录标题
CPU密集型
CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作CPU读写IO(硬盘/内存)时,IO可以在很短的时间内完成,而CPU还有许多运算要处理,因此,CPU负载很高。
CPU密集表示该任务需要大量的运算,而没有阻塞,CPU一直全速运行。CPU密集任务只有在真正的多核CPU上才可能得到加速,而在单核CPU上,无论你开几个模拟的多线程该任务都不可能得到加速,因为CPU总的运算能力就只有这么多。通常,CPU密集型线程的数目只需要设置为CPU核心数的线程个数就可以了。
IO密集型
IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等IO (硬盘/内存) 的读写操作,因此,CPU负载并不高。
密集型的程序一般在达到性能极限时,CPU占用率仍然较低,导致线程空余时间很多,因此IO密集型线程通常为CPU核心数的数倍,其计算公式为:IO密集型核心线程数 = CPU核数 / (1-阻塞系数)。使得线程进行 I/O 操作 CPU 空闲时,启用其他线程继续使用 CPU,以提高 CPU 的使用率。
CPU密集型与IO密集型任务的使用说明
- 当线程等待时间所占比例越高,则需要更多的线程,启用其他线程继续使用CPU,以此提高CPU的利用率。
- 当线程CPU时间所占比例越高,则需要更少的线程,通常线程数和CPU核数一致即可。
本文探讨了CPU密集型任务,如大量运算无阻塞,如何通过设置合理线程数以利用多核优势。同时,介绍了IO密集型任务,强调了在CPU空闲时启用更多线程以提升CPU利用率。关键在于根据任务特性调整线程配置以最大化性能。
2521

被折叠的 条评论
为什么被折叠?



