同步非同步?阻塞非阻塞?併發並行?

2021-10-06 05:39:35 字數 597 閱讀 4821

阻塞呼叫是指呼叫結果返回之前,呼叫者會進入阻塞狀態等待。只有在得到結果之後才會返回。

非阻塞呼叫是指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。

同步:在發出乙個同步呼叫時,在沒有得到結果之前,該呼叫就不返回。

非同步:在發出乙個非同步呼叫後,呼叫者不會立刻得到結果,該呼叫就返回了。

同步的定義看起來跟阻塞很像,但是同步跟阻塞是兩個概念, 同步呼叫的時候,執行緒不一定阻塞,呼叫雖然沒返回,但它還是在執行狀態中的,cpu很可能還在執行這段**,而阻塞的話,它就肯定不在cpu中跑這個**了。這就是同步和阻塞的區別。同步是肯定可以在,阻塞是肯定不在

同步阻塞呼叫:得不到結果不返回,執行緒進入阻塞態等待。

同步非阻塞呼叫:得不到結果不返回,執行緒不阻塞一直在cpu執行。

非同步阻塞呼叫:去到別的執行緒,讓別的執行緒阻塞起來等待結果,自己不阻塞。

非同步非阻塞呼叫:去到別的執行緒,別的執行緒一直在執行,直到得出結果。

併發是指乙個時間段內,有幾個程式都在同乙個cpu上執行,但任意乙個時刻點上只有乙個程式在處理機上執行。

並行是指乙個時間段內,有幾個程式都在幾個cpu上執行,任意乙個時刻點上,有多個程式在同時執行,並且多道程式之間互不干擾。

併發 並行,阻塞 非阻塞,同步 非同步

1.阻塞,非阻塞 乙個執行緒 程序經歷的5個狀態,建立,就緒,執行,阻塞,終止。各個狀態的轉換條件如上圖,其中有個阻塞狀態,就是說當執行緒中呼叫某個函式,需要io請求,或者暫時得不到競爭資源的,作業系統會把該執行緒阻塞起來,避免浪費cpu資源,等到得到了資源,再變成就緒狀態,等待cpu排程執行。定義...

同步 非同步 阻塞 非阻塞 併發 並行

同步和非同步關注的是訊息通訊機制 synchronous communication asynchronous communication 所謂同步,就是在發出乙個呼叫時,在沒有得到結果之前,該呼叫就不返回。但是一旦呼叫返回,就得到返回值了。換句話說,就是由呼叫者主動等待這個呼叫的結果。而非同步則是...

同步 非同步 阻塞 非阻塞 併發 並行

乙個小故事 故事 小a燒開水。出場人物 小a 出場道具 普通水壺 放在煤氣灶上的那種,為了方便簡稱 水壺 會響的水壺 水燒開了會響的那種,簡稱 響壺 故事目的 小a要拿開水泡咖啡 小a為了實現目的,指定了4個計畫 1 用水壺燒水,並且站在煤氣灶旁邊,啥事不幹,兩眼直勾勾的盯著水壺,等水燒開。燒開後就...