写的操作通常需要flush,有没有想过?

2018-08-18  本文已影响16人  plugins

无意间想起的一个问题

比如往socket里write的时候,比如往一个文件里写数据的时候,比如hession序列化的时候等等,不知道大家有没有想过这个问题。

以下是我的理解:程序在往文件里写数据,首先要把文件转化成一个流,数据从一块内存空间进入cpu进行处理,然后再由CPU写入流,此时的写操作还在内存中,经过flush之后数据才会从流进入文件。突然想到个问题,流和文件有可能描述的是一个东西,只是一个在硬盘中,一个在内存中,鉴于CPU不能之间与硬盘进行数据直接读写(这样会很慢),所以需要有这么一个流。

读者可能会想到为什么读不需要flush,显然读出来的数据是要在内存中处理的,比如做数据校验,求和,甚至打印的操作。

哈哈哈,不知道我的理解有没有问题🤨

上一篇下一篇

猜你喜欢

热点阅读