php socket 同步非同步堵塞非堵塞的區別

2022-06-29 08:18:12 字數 472 閱讀 6974

php socket 同步非同步堵塞非堵塞的區別

從accept接受資料開始

同步就是  服務端從客戶端接受完資料  處理 然後傳送給客戶端了  然後再開始接收新的客戶端發來的資料

非同步就是 服務端從客戶端接受完資料 就可以再次繼續接收   非同步處理資料

堵塞就是 服務端堵塞執行緒狀態接收資料 (read)

非堵塞就是 服務端掛起執行緒接收資料 (不斷輪詢去接受資料read) 這個期間還能做其他事情

講下epoll 同步非堵塞模式

同步上面說了 乙個個來的  非堵塞  就是  如果有資料了就到約定記憶體區域去讀取read  這個期間執行緒不是堵塞的  所以epoll並不能提高速度 只是增加了併發量 epoll

所以一般都是跟多執行緒合作 

多執行緒epoll就會引起驚群 因為多個執行緒搶占資源 就是搶占讀取資料   所以解決方法用埠復用  每個埠用1個epoll  這樣 1個埠就是1個epoll 單執行緒

IO模式 同步(堵塞 非堵塞) 非同步

為什麼io模式非常重要?由於現代的計算機和作業系統的架構決定了cpu是稀缺資源,大家都要來一起競爭。而io 特別是網路相關的io 的速度往往較慢。所以怎樣進行io就有了多種模式,包含同步 非同步 堵塞 非堵塞等等。不少人把這幾個概念放到一起討論,非常多時候也難以區分。這裡從根上剖析下該怎麼看待這幾個...

也談堵塞 非堵塞 同步 非同步

近期在招聘中,發現不少人對bio nio aio等理解非常模糊,認為有必要寫文章來糾正下非常多人的誤解。在談這些之前,非常有必要先介紹下unix 5種io模型 堵塞 堵塞是最經常使用的io模型,預設情況下全部的檔案操作都是堵塞的。以套接字程式設計為例。在程序空間中呼叫recvfrom。其系統呼叫直到...

理解非同步 同步 並行 併發 堵塞 非堵塞

一 同步vs非同步 同步和非同步我們經常見的,同步 執行方法是有時間順序的,例如我們執行乙個同步方法,必須等這個方法執行結束才能執行下一步操作,非同步 沒有時間順序,不需要等這個方法執行完,我們就可以執行下一步操作。二 並行vs併發 併發我們經常聽見,但是並行很少聽見吧,並行 就是一起執行,同時進行...