“I/O 密集型”和“CPU 密集型”是用来描述程序在资源利用上的侧重点的。
对于I/O 密集型任务,顾名思义,他的资源利用上对 I/O操作更多一些。对于CPU 密集型任务,那么他的资源利用上对 CPU 的依赖就更多一些。
I/O 操作主要包含从磁盘读取数据、写入数据、网络传输、数据库操作等。I/O 密集型任务的瓶颈在于数据的输入和输出过程,而不是计算过程。
他的特点如下:
常见的 I/O 密集型操作主要包括了文件的读写、网络请求、数据库查询等。
CPU 密集型任务涉及大量的计算操作,而不是 I/O 操作。这些任务的瓶颈在于计算能力和处理器的性能。
他的特点是:
CPU 密集型,增加线程数没啥用了,因为CPU 已经很忙了,再有很多线程也忙不过来了,只能加 CPU 才有效果。
常见的CPU 密集型主要包括了图像处理、数据的计算、音视频编解码操作等会。