有些概念, 老是弄不清楚
同步非同步
阻塞非阻塞
場景角色
client
發起請求
接受請求
server
接受請求
執行操作
返回響應
行為大致是乙個 c/s 模式的模型
概述對 客戶端 行為的描述
行為阻塞
client 發出請求
client 原地等待 server 處理完
client 接到 server 響應, 繼續前進
非阻塞client 發出請求
當然多數時候, 要確認 server 收到了請求, 簡單考慮的話, 可以先不提
client 繼續前進
關注點client 向 server 發出請求後的行為模式
概述對 服務端 行為的描述
行為同步
server 接受請求
server 處理請求
server 返回響應
非同步server 接受請求
server 返回響應
收到請求
server 處理請求
server 返回響應
處理完成
關注點server 在收到請求後的行為模式
其他server 處理完請求, client 有多重方式知道 處理完成
client 輪詢
client 主動
反覆詢問 server 情況
client 監聽
server 主動
處理完後立即通知 client
阻塞同步
最常見的模型
最簡單阻塞非同步
有點二逼的模型
client 明明可繼續前進, 非要傻等到 server 的處理完成
非阻塞同步
有點二逼的模型
server 明明可以返回, 繼續接受其他請求, 但還是在**阻塞
非阻塞非同步
常見的模型
最高效
認識非阻塞的同步機制CAS
原文在這裡 在研究執行緒池的執行原理時,看到一段不斷迴圈重試的 不理解它的原理,看注釋這是cas的實現,所以學會之後記錄下來。在多執行緒併發下,可以通過加鎖來保證執行緒安全性,但多個執行緒同時請求鎖,很多情況下避免不了要借助作業系統,執行緒掛起和恢復會存在很大的開銷,並存在很長時間的中斷。一些細粒度...
基本概念 同步 非同步 阻塞和非阻塞
在進行網路程式設計時,我們常常見到同步 非同步 阻塞和非阻塞四種呼叫方式。這些方式彼此概念並不好理解。下面是我對這些術語的理解。同步所謂同步,就是在發出乙個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。按照這個定義,其實絕大多數函式都是同步呼叫 例如sin,isdigit等 但是一般而言,我們在說...
基本概念 同步 非同步 阻塞和非阻塞
同步指當呼叫相關系統函式時,如果他需要的資源沒有就緒,那麼呼叫該函式的程序就轉入阻塞態,直到她需要的資源就緒時才從該函式返回繼續執行。非同步指當呼叫相關系統函式時,如果他需要的資源沒有就緒,那麼呼叫該函式的程序馬上從該函式返回繼續執行該函式後面的指令,而該程序本身不會轉入阻塞態,這樣該程序就可在這段...