io程式設計,python

2022-07-18 18:48:09 字數 584 閱讀 7665

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...