同步與非同步:
同步:傳送乙個請求,等待返回,然後再傳送下乙個請求
非同步:傳送乙個請求,不等待返回,隨時可以再傳送下乙個請求
同步可以避免出現死鎖,讀髒資料的發生,一般共享某一資源的時候用,如果每個人都有修改許可權,同時修改乙個檔案,有可能使乙個人讀取另乙個人已經刪除的內容,就會出錯,同步就會按順序來修改。
非同步則是可以提高效率了,現在cpu都是雙核,四核,非同步處理的話可以同時做多項工作,當然必須保證是可以併發處理的。
同步和非同步最大的區別就在於。乙個需要等待,乙個不需要等待。
併發與並行:
併發當有多個執行緒在操作時,如果系統只有乙個cpu,則它根本不可能真正同時進行乙個以上的執行緒,它只能把cpu執行時間劃分成若干個時間段,再將時間 段分配給各個執行緒執行,在乙個時間段的執行緒**執行時,其它執行緒處於掛起狀。.這種方式我們稱之為併發(concurrent)。
並行:當系統有乙個以上cpu時,則執行緒的操作有可能非併發。當乙個cpu執行乙個執行緒時,另乙個cpu可以執行另乙個執行緒,兩個執行緒互不搶占cpu資源,可以同時進行,這種方式我們稱之為並行(parallel)。
區別:併發和並行是即相似又有區別的兩個概念,並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔內發生。
在多道程式環境下,併發性是指在一段時間內巨集觀上有多個程式在同時執行,但在單處理機系統中,每一時刻卻僅能有一道程式執行,故微觀上這些程式只能是分時地交替執行。
倘若在計算機系統中有多個處理機,則這些可以併發執行的程式便可被分配到多個處理機上,實現並行執行,即利用每個處理機來處理乙個可併發執行的程式,
這樣,多個程式便可以同時執行。
併發 並行 同步 非同步
併發 任務數量大於核心數,兩個或多個時間在同一時間間隔發生 並行 任務數量小於或等於核心數,兩個或多個時間在同一時間發生 你吃飯吃到一半,來了,你一直到吃完了以後才去接,這就說明你不支援併發也不支援並行。你吃飯吃到一半,來了,你停了下來接了 接完後繼續吃飯,這說明你支援併發。不一定是同時的 你吃飯吃...
理解非同步 同步 並行 併發 堵塞 非堵塞
一 同步vs非同步 同步和非同步我們經常見的,同步 執行方法是有時間順序的,例如我們執行乙個同步方法,必須等這個方法執行結束才能執行下一步操作,非同步 沒有時間順序,不需要等這個方法執行完,我們就可以執行下一步操作。二 並行vs併發 併發我們經常聽見,但是並行很少聽見吧,並行 就是一起執行,同時進行...
python 同步非同步,併發並行,同步鎖
併發 系統具有處理多個任務 動作 的能力 並行 系統具有同時處理多個任務 動作 的能力 同步 當程序執行到乙個io 等待外部資料 的時候,需要等待,等待即同步 非同步 當程序執行到乙個io 等待外部資料 的時候,不需要等待,待資料接收成功後,再回來處理。gil 全域性解釋鎖 無論你有多少個執行緒,你...