请结合flush方法说下,谢谢!

解决方案 »

  1.   

    LZ指的是输出缓存吧?
    首先应该知道读写内存比读写硬盘等外部设备速度要快,如果一个处理A,直接读写硬盘或外部设备,那么处理速度就会下降,为了提高处理速度,可以让A读写某块内存,内存写满后由某个处理B把缓存的内容写到实际的硬盘或外部设备,这样A就直接和硬盘或外部设备打交道,而是跟内存打交道,处理速度就会提高。那么,这块内存就可以称作缓存。如果A写入缓存的时候,缓存没有填满,那么B就不会主动把缓存信息写入设备,所以此时A可以调用flush来告诉B我就先写那么多信息了,你先帮我把这些信息写到设备吧。
      

  2.   

    简单理解就是内存中的一小块地方,这块内存将需要读写的数据暂存起来,当这块区域装满之后,将里面的数据读写出来。目的就是为了提高速度。因为内存与硬盘的读写是相对较慢的,如果多次读写的话,会比较浪费时间。如果在内存中开辟这块地方先暂存起来,然后统一一次对硬盘进行读写,速度会快的多。
    而且很多情况,在内存中处理的数据要往返于硬盘之间,如果放一块缓存的话,可以对这块缓存进行读写,之后统一写入磁盘。
    读写内存要比读写磁盘,速度上快的多,不止千百倍的差距。当缓存满的时候,进行读写。如果想在缓存没满的情况下就读写,这时就需要flush方法。强制输出缓冲区。
      

  3.   

    一句话概括:解决CPU的高速与I/O龟速这一矛盾的一个折中方法