同步與非同步
同步和非同步關注的是訊息通訊機制 (synchronous communication/ asynchronous communication)
- 所謂同步,就是在發出一個呼叫時,在沒有得到結果之前,該呼叫就不返回
- 非同步則是相反,呼叫在發出之後,這個呼叫就直接返回了,所以沒有返回結果
換句話說,當一個非同步過程呼叫發出後,呼叫者不會立刻得到結果。而是在呼叫發出後,被呼叫者通過狀態、通知來通知呼叫者,或通過回撥函式處理這個呼叫
阻塞與非阻塞
阻塞和非阻塞關注的是程式在等待呼叫結果(訊息,返回值)時的狀態。
- 阻塞呼叫是指呼叫結果返回之前,當前執行緒會被掛起,呼叫執行緒只有在得到結果之後才會返回
- 非阻塞呼叫指在不能立刻得到結果之前,該呼叫不會阻塞當前執行緒