在linux中,對檔案的讀寫其實就是io。
與io有關的名詞:同步,非同步,阻塞,非阻塞,甚至是同步阻塞,同步非阻塞,非同步阻塞,非同步非阻塞。別急,下面有舉例
io分為兩大種,同步和非同步
同步io:
阻塞io
非阻塞io
io多路復用(包括select,poll,epoll三種)
訊號驅動io
非同步io
那麼如何理解區別這幾個概念呢?尤其是同步和阻塞,非同步和非阻塞,看起來就是一樣的.
舉個例子結合自己的理解來說明一下:
如果你仔細品過上面案例中的每乙個字,你就能慢慢體會到之所以非同步和非阻塞,同步和阻塞容易混淆,僅僅是因為二者的表現形式稍微有點兒相似而已.
阻塞和非阻塞關注的是:在等饅頭的過程中,你在幹啥.
同步和非同步關注的是:等饅頭這件事,你是一直等到"饅頭出爐"的結果,還是立即跑路等阿梅告訴你的"饅頭出爐".重點的是你是如何得知"饅頭出爐"的.
所以現實世界中,最傻的人才會採用非同步阻塞的io方式去寫程式.其餘三種方式,更多的人都會選擇同步阻塞或者非同步非阻塞.同步非阻塞最大的問題在於,你需要不斷在各個任務中忙碌著,導致你的大腦混亂,非常累.
IO檔案讀寫
b表示二進位制模式訪問,但是對於linux或者unix系統來說這個模式沒有任何意義,因為他們把所有檔案都看做二進位制檔案,包括文字檔案 一.三種方法讀取檔案 方法1 open f open d hello.txt r 已讀的方式開啟,open只能讀檔案,不能讀資料夾 fp f.read print ...
同步IO和非同步IO 簡單理解
在linux系統中,所有的裝置讀寫都可以看做是檔案的讀寫來進行操作,而對檔案的讀寫一般要經過核心態和使用者態的切換,因此io產生了同步和非同步。同步是阻塞模式,非同步是非阻塞模式。同步就是指乙個程序在執行某個請求的時內候,若該請求需容要一段時間才能返回資訊,那麼這個程序將會一直等待下去,直到收到返回...
IO流檔案讀寫
p1 開啟檔案 讀檔案 關閉檔案的典型方法 try f open d test.txt r print f.read finally if f f.close p2 推薦的簡潔寫法,不必顯示的關閉檔案描述符 open返回的物件在python中稱作file like 物件,可以是位元組流 網路流 自定...