我一直在网上阅读多篇关于多线程/异步/并行编程的文章,我经常遇到类似的声明,如下所示。
在写入文件时,即使在此期间有等待处理的请求,也不会使用CPU。这些系统的一般指示是响应时间长,CPU使用率低,即使在压力条件下也是如此。
如何在写入文件时不使用CPU?
希望我的问题很明确。
答案 0 :(得分:4)
CPU正在等待硬件指示它已完成处理所请求的操作,您的处理器不会将文件写入硬盘,这是由IDE / SATA / RAID控制器处理的。
答案 1 :(得分:2)
基本上,当您“写入”文件时,您将信息发送到硬盘驱动器(此位使用CPU),但您需要等待信息已物理写入磁盘。此等待时间不使用CPU,但显着长于前一个。加载时,你花99%的时间等待硬盘在物理上获取信息。
答案 2 :(得分:1)
因为CPU正在等待来自磁盘的响应。磁盘是一个独立的单元,它通过串行总线(或旧磁盘的并行总线)与CPU通信。内部驱动器和外部驱动器之间的技术差异实际上主要在于它是在计算机盒的内部还是外部。
将一个数据包发送到要写入的磁盘,然后CPU只能等到磁盘完成它的工作,并返回所请求操作的状态。