寫(xiě)的操作通常需要flush,有沒(méi)有想過(guò)?

無(wú)意間想起的一個(gè)問(wèn)題

比如往socket里write的時(shí)候,比如往一個(gè)文件里寫(xiě)數(shù)據(jù)的時(shí)候,比如hession序列化的時(shí)候等等,不知道大家有沒(méi)有想過(guò)這個(gè)問(wèn)題。

以下是我的理解:程序在往文件里寫(xiě)數(shù)據(jù),首先要把文件轉(zhuǎn)化成一個(gè)流,數(shù)據(jù)從一塊內(nèi)存空間進(jìn)入cpu進(jìn)行處理,然后再由CPU寫(xiě)入流,此時(shí)的寫(xiě)操作還在內(nèi)存中,經(jīng)過(guò)flush之后數(shù)據(jù)才會(huì)從流進(jìn)入文件。突然想到個(gè)問(wèn)題,流和文件有可能描述的是一個(gè)東西,只是一個(gè)在硬盤(pán)中,一個(gè)在內(nèi)存中,鑒于CPU不能之間與硬盤(pán)進(jìn)行數(shù)據(jù)直接讀寫(xiě)(這樣會(huì)很慢),所以需要有這么一個(gè)流。


讀者可能會(huì)想到為什么讀不需要flush,顯然讀出來(lái)的數(shù)據(jù)是要在內(nèi)存中處理的,比如做數(shù)據(jù)校驗(yàn),求和,甚至打印的操作。

哈哈哈,不知道我的理解有沒(méi)有問(wèn)題??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容