国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【基礎知識】水平觸發(fā)與邊沿觸發(fā)

MrZONT / 979人閱讀

摘要:一基礎水平觸發(fā)基本概念讀緩沖區(qū)不為空時讀事件觸發(fā)。開啟時,會把監(jiān)聽套接字所有可讀的事件全部讀取,此時可以使用邊沿觸發(fā)。但為了保證連接不丟失,仍然采用水平觸發(fā)通信套接字設置對于與客戶端通信使用的套接字默認使用水平觸發(fā)。

一. 基礎 1.1 水平觸發(fā) 基本概念

讀緩沖區(qū)不為空時, 讀事件觸發(fā)。
寫緩沖區(qū)不為滿時, 寫事件觸發(fā)。
處理流程

accept新的連接, 監(jiān)聽讀事件。
讀事件到達, 處理讀事件。
需要寫入數(shù)據(jù), 向fd中寫數(shù)據(jù), 一次無法寫完, 開啟寫事件監(jiān)聽。
寫事件到達, 繼續(xù)寫入數(shù)據(jù), 寫完后關閉寫事件。
優(yōu)缺點

不會遺漏事件, 易編程。
長連接需要寫入的數(shù)據(jù)量大時, 會頻繁開啟關閉寫事件。

1.2 邊沿觸發(fā) 基本概念

讀緩沖區(qū)狀態(tài)變化時, 讀事件觸發(fā), 網(wǎng)卡接受到新數(shù)據(jù)。
寫緩沖區(qū)狀態(tài)變化時, 寫事件觸發(fā), 網(wǎng)卡發(fā)出了新數(shù)據(jù)。
處理流程

accept新的連接, 同時監(jiān)聽讀寫事件。
讀事件到達, 需要一直讀取數(shù)據(jù), 直到返回EAGAIN。
寫事件到達, 無數(shù)據(jù)處理則不處理, 有數(shù)據(jù)待寫入則一直寫入,直到寫完或者返回EAGAIN。
優(yōu)缺點

不需要頻繁開啟關閉事件, 效率較高。
讀寫事件處理不當, 可能導致事件丟失, 編程教復雜。

1.3 選擇 概述

對于讀事件而言,總體而言, 采用水平觸發(fā)方式較好。應用程序在讀取數(shù)據(jù)時,可能會一次無法讀取全部數(shù)據(jù),邊沿觸發(fā)在下一次可能不會觸發(fā)。如果能夠保證一次讀取緩存的全部數(shù)據(jù),可以采用邊沿觸發(fā),效率更高, 但同時編程復雜度也高。
對于寫事件,當客戶端服務端采用短連接或者采用長連接但發(fā)送的數(shù)據(jù)量比較少時(例如: Redis), 采用水平觸發(fā)即可。當客戶端與服務端是長連接并且數(shù)據(jù)寫入的量比較大時(例如: nginx), 采用邊沿觸發(fā), 因為邊沿觸發(fā)效率更高。
目前,linux不支持讀寫事件分別設置不同的觸發(fā)方式,具體采用哪種方式觸發(fā),需要根據(jù)具體需求。
監(jiān)聽套接字事件設置

監(jiān)聽套接字不需要監(jiān)聽寫事件,只需要監(jiān)聽讀事件。
監(jiān)聽套接字一般采用水平觸發(fā)方式。(nginx開啟multi_accept時,會把監(jiān)聽套接字所有可讀的事件全部讀取,此時可以使用邊沿觸發(fā)。但為了保證連接不丟失,nginx仍然采用水平觸發(fā))
通信套接字設置

redis對于與客戶端通信使用的套接字默認使用水平觸發(fā)。
nginx對于與客戶端通信使用的套接字默認采用邊沿觸發(fā)。

二. 參考

https://blog.csdn.net/dongfuy...

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40202.html

相關文章

  • epoll LT/ET 深入剖析

    摘要:深入剖析事件有兩種模型水平觸發(fā)接收緩沖區(qū)不為空有數(shù)據(jù)可讀讀事件一直觸發(fā)發(fā)送緩沖區(qū)不滿可以繼續(xù)寫入數(shù)據(jù)寫事件一直觸發(fā)符合思維習慣,返回的事件就是的狀態(tài)邊沿觸發(fā)的接收緩沖區(qū)狀態(tài)變化時觸發(fā)讀事件,即空的接收緩沖區(qū)剛接收到數(shù)據(jù)時觸發(fā)讀事件的發(fā)送緩沖 epoll LT/ET 深入剖析 EPOLL事件有兩種模型: Level Triggered (LT) 水平觸發(fā).socket接收緩沖區(qū)不為空 有...

    microelec 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<