io在計算機中指input/output,也就是輸入和輸出。
stream(流):
可以把流想象成乙個水管,資料就是水管裡的水,但是只能單向流動。input stream就是資料從外面(磁碟、網路)流進記憶體,output stream就是資料從記憶體流到外面去。
由於cpu和記憶體的速度遠遠高於外設的速度,所以,在io程式設計中,就存在速度嚴重不匹配的問題,處理的方法有:
同步io:
第一種是cpu等著,也就是程式暫停執行後續**,等100m的資料在10秒後寫入磁碟,再接著往下執行
非同步io:
cpu不等待,只是告訴磁碟,「您老慢慢寫,不著急,我接著幹別的事去了」,於是,後續**可以立刻接著執行
使用非同步io來編寫程式效能會遠遠高於同步io,但是非同步io的缺點是程式設計模型複雜。
你說「來個漢堡」,服務員告訴你,漢堡需要等5分鐘,你可以先去逛商場,等做好了,我們再通知你,這樣你可以立刻去幹別的事情(逛商場),這是非同步io。
若為非同步,你得知道什麼時候通知你「漢堡做好了」,而通知你的方法也各不相同。如果是服務員跑過來找到你,這是**模式,
如果服務員發簡訊通知你,你就得不停地檢查手機,這是輪詢模式。
Python學習 IO程式設計
json高階 python的dict物件可以直接序列化為json的 不過,很多時候,我們更喜歡用class表示物件,比如定義member類,然後序列化 import json class member object def init self,name,age,score self.name nam...
python學習 I O程式設計
1 輸入資料 input 輸出資料 print name input print name name print name s name for i in range 1,10 print i for i in range 1,10 name input print name name print ...
python學習筆記 IO程式設計
由於cpu和記憶體的速度遠遠高於外設的速度,所以,在io程式設計中,就存在速度嚴重不匹配的問題。舉個例子來說,比如要把100m的資料寫入磁碟,cpu輸出100m的資料只需要0.01秒,可是磁碟要接收這100m資料可能需要10秒,怎麼辦呢?有兩種辦法 第一種是cpu等著,也就是程式暫停執行後續 等10...