理解非同步 同步 並行 併發 堵塞 非堵塞

2021-09-02 18:39:29 字數 381 閱讀 6112

一、同步vs非同步

同步和非同步我們經常見的,同步: 執行方法是有時間順序的,例如我們執行乙個同步方法,必須等這個方法執行結束才能執行下一步操作,非同步:沒有時間順序,不需要等這個方法執行完,我們就可以執行下一步操作。

二、並行vs併發

併發我們經常聽見,但是並行很少聽見吧,並行:就是一起執行,同時進行,例如乙個房子有四個門,四個人可以同時進入;併發:爭搶執行,例如乙個房子只有一門,四個人進入,誰快誰先進去

三、堵塞vs非堵塞

阻塞和非阻塞通常用來形容多執行緒間的相互影響,比如乙個執行緒占有了臨界區資源,那麼其他執行緒需要這個資源就必須進行等待該資源的釋放,會導致等待的執行緒掛起,這種情況就是阻塞,而非阻塞就恰好相反,它強調沒有乙個執行緒可以阻塞其他執行緒,所有的執行緒都會嘗試地往前執行。

IO模式 同步(堵塞 非堵塞) 非同步

為什麼io模式非常重要?由於現代的計算機和作業系統的架構決定了cpu是稀缺資源,大家都要來一起競爭。而io 特別是網路相關的io 的速度往往較慢。所以怎樣進行io就有了多種模式,包含同步 非同步 堵塞 非堵塞等等。不少人把這幾個概念放到一起討論,非常多時候也難以區分。這裡從根上剖析下該怎麼看待這幾個...

也談堵塞 非堵塞 同步 非同步

近期在招聘中,發現不少人對bio nio aio等理解非常模糊,認為有必要寫文章來糾正下非常多人的誤解。在談這些之前,非常有必要先介紹下unix 5種io模型 堵塞 堵塞是最經常使用的io模型,預設情況下全部的檔案操作都是堵塞的。以套接字程式設計為例。在程序空間中呼叫recvfrom。其系統呼叫直到...

php socket 同步非同步堵塞非堵塞的區別

php socket 同步非同步堵塞非堵塞的區別 從accept接受資料開始 同步就是 服務端從客戶端接受完資料 處理 然後傳送給客戶端了 然後再開始接收新的客戶端發來的資料 非同步就是 服務端從客戶端接受完資料 就可以再次繼續接收 非同步處理資料 堵塞就是 服務端堵塞執行緒狀態接收資料 read ...