同步非同步 與 阻塞非阻塞

不要必應發表於2019-09-18

同步與非同步

同步和非同步關注的是訊息通訊機制 (synchronous communication/ asynchronous communication)

  • 所謂同步,就是在發出一個呼叫時,在沒有得到結果之前,該呼叫就不返回
  • 非同步則是相反,呼叫在發出之後,這個呼叫就直接返回了,所以沒有返回結果

換句話說,當一個非同步過程呼叫發出後,呼叫者不會立刻得到結果。而是在呼叫發出後,被呼叫者通過狀態、通知來通知呼叫者,或通過回撥函式處理這個呼叫

阻塞與非阻塞

阻塞和非阻塞關注的是程式在等待呼叫結果(訊息,返回值)時的狀態。

  • 阻塞呼叫是指呼叫結果返回之前,當前執行緒會被掛起,呼叫執行緒只有在得到結果之後才會返回
  • 非阻塞呼叫指在不能立刻得到結果之前,該呼叫不會阻塞當前執行緒

相關文章