//eventloop
typedef struct aeeventloop aeeventloop;
//註冊的檔案事件
typedef struct aefileevent aefileevent;
//發生的檔案事件
typedef struct aefiredevent aefiredevent;
//時間事件(鍊錶結構)
typedef struct aetimeevent aetimeevent;
//epoll的封裝
typedef struct aeapistate aeapistate;
見圖:2.1.1) 產生乙個eventloop(見ae.c:aecreateeventloop)
2.1.2)新增乙個時間事件(見ae.c:aecreatetimeevent)
2.1.3)註冊乙個檔案事件(見ae.c:aecreatefileevent)
2.1.4) 進入無限輪詢(見ae.c::aemain)
從epoll中獲取準備好的檔案事件(連線、讀、寫)(見ae_epoll.c:aeapipoll)
遍歷準備好的檔案事件,如果是可讀,就呼叫用讀函式,如果是可寫就呼叫寫函式
時間事件處理
啟動完畢之後的狀態見圖:
假設在啟動時新增的檔案事件fd為6,即伺服器的監聽套接字
2.2.1)客戶端發起連線(./redis-cli)
此時連線已建立(新增),就等待客戶端發請求了
狀態見圖:
2.2.2)客戶端發請求(set foo bar)
狀態見圖
2.2.3) 服務端響應
狀態如圖:
2.2.4) 客戶端關閉連線(ctrl+c)
狀態如圖:
(系統唯一的servercron每次都會返回100ms)
從上面應該可以看到
但也有潛在的問題
DOM 事件的深入淺出(二)
在dom事件的深入淺出 一 中,我主要給大家講解了不同dom級別下的事件處理程式,同時介紹了事件冒泡和捕獲的觸發原理和方法。本文將繼續介紹dom事件中的知識點,主要側重於dom事件中event物件的屬性和方法。那麼什麼是dom事件中event物件呢?事件物件 event object 指的是與特定事...
深入淺出sizeof
int佔 位元組,short佔 位元組 1.0 回答下列問題 答案在文章末尾 1.sizeof char 2.sizeof a 3.sizeof a 4.strlen a 如果你答對了全部四道題,那麼你可以不用細看下面關於sizeof的論述。如果你答錯了部分題目,那麼就跟著我來一起 關於sizeof...
深入淺出ShellExecute
ipconfig c log.txt應如何處理?二樓的朋友,開啟拔號網路這樣 shellexecute null,open c windows rundll32.exe shell32.dll,control rundll c windows system telephon.cpl null,sw ...