1樓:匿名使用者
阻塞。阻塞呼叫是指呼叫結果返回之前配遊,當前執行緒會被掛起。函式只有在得到結果之後才會返回。
有人也許會把阻塞呼叫和同步呼叫等同起來,實際上他是不同的。對於同步呼叫來說,很多時候當前執行緒還是啟用的,只是從邏輯上當前函式沒有返回而已。例如,我們在csocket中呼叫receive函式,如果緩衝區中沒有資料,這個函式就會一直等待,直到有資料才返回。
而此時,當前執行緒還會繼續處理各種各樣的訊息。如果主視窗和呼叫函式在同乙個執行緒中,除非你在特殊的介面操作函式中呼叫,其實主界螞賣毀面還是應該可以重新整理。socket接收資料的另外乙個函式recv則是乙個阻塞呼叫的例子。
當socket工作在阻塞模式的時候,如果沒有資料的情況下呼叫該函式,則當前執行緒就會被掛起,直到有資料為止。
非阻塞。非阻塞和阻塞的概念相對應,指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。
物件的阻塞模式和阻塞函式呼叫。
物件是否處於阻塞模式和函式是不是阻塞呼叫有很強的相關性,但是並不是一一對應的。阻塞物件上可以有非阻塞的呼叫方式,我們可以悶備通過一定的api去輪詢狀態,在適當的時候呼叫阻塞函式,就可以避免阻塞。而對於非阻塞物件,呼叫特殊的函式也可以進入阻塞呼叫。
函式select就是這樣的乙個例子。
2樓:匿名使用者
您好,請問您是想知道socket阻塞模式和非阻塞模式的區別嗎?
linux網路程式設計中阻塞和非阻塞socket的區別
3樓:網友
通俗一點,阻塞就是幹不完不準回來,非阻塞就是你先幹,我現看看有其他事沒有,完了告訴我一聲。
4樓:山東中公優就業
1、阻塞:
一般的i/o操作可以在新建的流中運用。在伺服器回應前它等待客戶端傳送乙個空白的行。當會話結束時,伺服器關閉流和客戶端socket.
如果在佇列中沒有請示將會出現什麼情況呢?那個方法將會等待乙個的到來。這個行為叫阻塞。
accept()方法將會阻塞伺服器執行緒直到乙個呼叫到來。當5個連線處理完閉之後,伺服器退出。任何的在佇列中的呼叫將會被取消。
2、非阻塞:
非阻塞套接字是指執行此套接字的網路呼叫時,不管是否執行成功,都立即返回。比如呼叫recv()函式讀取網路緩衝區中資料,不管是否讀到資料都立即返回,而不會一直掛在此函式呼叫上。在實際windows網路通訊軟體開發中,非同步非阻塞套接字是用的最多的。
平常所說的c/s(客戶端/伺服器)結構的軟體就是非同步非阻塞模式的。
簡單點說:阻塞就是幹不完不準回來,非組賽就是你先幹,我現看看有其他事沒有,完了告訴我一聲。
光貓的全路由模式和非全路由模式是什麼意思?怎麼設定
光貓。一般是運營商在安裝寬頻時候順帶配置,由工程師配置好相關的撥號模式,再提供給使用者使用,但是安裝師傅上門調通光纖訊號就離開,除非是由使用者主動投訴才能再次上門。那麼如果我們剛好在加班中,這時候突然沒網,應該怎麼辦?別急,這裡看光貓的幾個燈就知道大概的情況。光貓的提示燈。以中國電信。的光貓e c舉例,...
TCP和UDP在socket程式設計中的區別
tcp 和 udp 在socket程式設計中的bai區別。du基於連線與無連zhi接 對系統資源 dao的要求 tcp較多,回udp少 udp程式結構較 答簡單流模式與資料包模式 tcp保證資料正確性,udp可能丟包 tcp保證資料順序,udp不保證 部分滿足以下幾點要求時,應該採用udp 面向資料...
商業模式和盈利模式有什麼區別運營模式和商業模式有什麼區別嗎?
商業模式和盈利模式的區別如下 1 最終目標 商業模式主要指企業的商業邏輯,主要包括使用者價 盈利模式 產品定位 核心資源等。它設計的最終目的和想要達成的最終目標是盈利模式 盈利模式是產品本身的盈利模式,它的最終目標是 商品如何賺取更多的利潤。2 模式作用 商業模式的作用是明確這種模式是否在正確的方向...