Reactor網路設計模式

2021-10-19 08:19:02 字數 627 閱讀 8439

簡單通訊模型缺點在於核心函式會阻塞,cpu利用率低。reactor事件處理模式應運而生。同步i/o模型通常用於實現reactor模式。

reactor模式要求主線程(i/o處理單元)只負責監聽檔案描述符上是否有事件發生,有的話就立即將該事件通知工作單元(邏輯單元)。除此之外,主線程不做任何其他實質性的工作。讀寫資料,接受新的連線,以及處理客戶請求均在工作執行緒中完成。

1、主線程往epoll核心事件表中註冊socket上的讀就緒事件。

2、主線程呼叫epoll_wait等待socket上有資料可讀。

3、當socket上有資料可讀時,epoll_wait通知主線程。主線程則將socket可讀事件放入請求佇列。

4、睡眠在請求佇列傷的某個工作執行緒被喚醒,他從socket讀取資料,並處理客戶端請求,然後往epoll核心事件表中註冊該socket上的寫事件。

5、主線程呼叫epoll_wait等待socket可寫。

6、當socket可寫時,epoll_wait通知主線程。主線程將socket可寫事件放入請求佇列。

7、睡眠在請求佇列上的某個工作執行緒被喚醒,他往socket上寫入伺服器處理客戶請求的結果。

reactor設計模式

reactor設計模式,是一種基於事件驅動的設計模式。pattern oriented software architecture,volume 2 對這個模式做了詳細的講解。這個模式的結構圖如下 圖中的handle對應的是作業系統提供的控制代碼,例如i o控制代碼,event handler類持有...

設計模式 reactor

先看個段子吧,更好理解 reactor這個詞譯成漢語還真沒有什麼合適的,很多地方叫反應器模式,但更多好像就直接叫reactor模式了,其實我覺著叫應答者模式更好理解一些。通過了解,這個模式更像乙個侍衛,一直在等待你的召喚,或者叫召喚獸。併發系統常使用reactor模式,代替常用的多執行緒的處理方式,...

Reactor設計模式

reactor這個詞譯成漢語還真沒有什麼合適的,很多地方叫反應器模式,但更多好像就直接叫reactor模式了,其實我覺著叫應答者模式更好理解一些。通過了解,這個模式更像乙個侍衛,一直在等待你的召喚,或者叫召喚獸。併發系統常使用reactor模式,代替常用的多執行緒的處理方式,節省系統的資源,提高系統...