其中,對非同步阻塞機制,以read/poll 函式為例,其實際上是 等待事件通知。
呼叫者仍然會被poll呼叫阻塞住,停止在poll那個地方。
所謂非同步,說的是 可以有很多i/o在工作,有了結果會通知呼叫者,此時poll獲得結果。
用生活中的例子來看:
同步阻塞:乙個人早上起來去遛狗,一旦開遛,就一直到結束。
同步非阻塞:比如你去發傳真,你發了就發了,不用等待對方回應。
再比如你去麥當勞買快餐,你發現人多就決定不買了,
或者你過半小時來一趟,到櫃檯看看能不能買你要的**,或者你買**付了錢,間隔一段時間看看好了沒有。
非同步阻塞: 比如你和你的同事分別在**、噹噹等訂了一些貨物,
你知道每天下午1點本地一家貨運公司(比如發到暴貨運****)為 **、噹噹、京東一起送貨,這就是io多路復用了。
訂了貨物以後,你每天上班的流程是:開會、幹活、發呆、聊天打屁,吃中午飯,這就是非同步。
然後因為著急,你就下午1點到1點半公司門外等著看發到暴貨運的車來了沒有,如果有就上前收貨。這段時間你阻塞了。
1點半之後你又回去上班,又是非同步。
非同步非阻塞:這是所謂aio,為了提高效率,你在訂貨的時候給商家留了**號碼。然後你就幹自己的工作。這是非同步。
當發到暴貨運的貨物到了,他們發現有你的貨,就會給你打**。
你此時放下手頭工作來收貨。收完貨再回去工作。這是非阻塞。
嚴格模式備忘
嚴格模式中意外建立全域性變數被丟擲錯誤替代 靜默失敗的賦值操作 給不可寫屬性賦值,給唯讀屬性 getter only 賦值賦值,給不可擴充套件物件 non extensible object 的新屬性賦值 試圖刪除不可刪除的屬性時會丟擲異常 之前這種操作不會產生任何效果 乙個物件內的所有屬性名在物件...
LinuxI O程式設計
linux系統呼叫 系統呼叫是指作業系統提供給使用者程式的一組 特殊 介面,使用者可以獲得作業系統核心提供的特殊服務。在linux中使用者程式不能直接訪問核心提供的服務,程式的執行空間分為核心空間和使用者空間,他們執行在不同的級別上,在邏輯上是相互隔離的。檔案i o介紹 大多數檔案i o只用到5個函...
設計模式之備忘模式
from copy import deepcopy import logging,time 備忘模式中主要有三個角色 發起人 需要進行備份的物件 備忘錄 備份的狀態,即乙個備份的文件 備忘錄管理者 備份文件的管理者,由他負責人與發起人的互動 應用場景 1 需要儲存 恢復物件的狀態或資料時,如遊戲的存...