无意间想起的一个问题
比如往socket里write的时候,比如往一个文件里写数据的时候,比如hession序列化的时候等等,不知道大家有没有想过这个问题。
以下是我的理解:程序在往文件里写数据,首先要把文件转化成一个流,数据从一块内存空间进入cpu进行处理,然后再由CPU写入流,此时的写操作还在内存中,经过flush之后数据才会从流进入文件。突然想到个问题,流和文件有可能描述的是一个东西,只是一个在硬盘中,一个在内存中,鉴于CPU不能之间与硬盘进行数据直接读写(这样会很慢),所以需要有这么一个流。
读者可能会想到为什么读不需要flush,显然读出来的数据是要在内存中处理的,比如做数据校验,求和,甚至打印的操作。
哈哈哈,不知道我的理解有没有问题🤨
网友评论