1. 程式人生 > >阻塞、非阻塞、同步、異步的理解

阻塞、非阻塞、同步、異步的理解

等待 部分 之前 異步調用 分享 線程阻塞 src entry 同步

參考:https://juejin.im/entry/58ae4636b123db0052b1caf8 (文中部分理解有誤)

技術分享圖片

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

非阻塞調用是指在不能立刻得到結果之前,該函數不會阻塞當前線程,而會立刻返回。

同步:在發出一個同步調用時,在沒有得到結果之前,該調用就不返回。

異步:在發出一個異步調用後,調用者不會立刻得到結果,該調用就返回了。

同步阻塞調用:得不到結果不返回,線程進入阻塞態等待。

同步非阻塞調用:得不到結果不返回,線程不阻塞一直在CPU運行。

異步阻塞調用:該調用返回,主線程阻塞。(所以應該是沒有意義的)

異步非阻塞調用:該調用返回,主線程不阻塞(假設是在主線程調用的吧)

阻塞、非阻塞、同步、異步的理解