redis中io復用之select

2021-08-16 19:30:44 字數 503 閱讀 3628

前面講過evport/epoll/kqueue的實現,下來我們繼續看看我們select在redis中的使用

1:首先通過fd_zero來清空用於監控讀和寫fd的rfds和wfds的鍊錶

typedef struct aeapistate aeapistate;

static int aeapicreate(aeeventloop *eventloop)

2:通過fd_set 將要監控fd對應的bit為寫道讀事件state->rfds 或者寫事件state->wfds

static int aeapiaddevent(aeeventloop *eventloop, int fd, int mask)

3:通過select 監控fd

static int aeapipoll(aeeventloop *eventloop, struct timeval *tvp)

}return numevents;

}

redis中io復用之kqueue

前面講過evport epoll的實現,下來我們繼續看看我們kqueue在redis中的使用 1 首先通過kqueue申請提供給系統監控的fd typedef struct aeapistate aeapistate static int aeapicreate aeeventloop eventl...

Linux系統程式設計 IO多路復用之select

i o 多路復用技術是為了解決程序或執行緒阻塞到某個 i o 系統呼叫而出現的技術,使程序不阻塞於某個特定的 i o 系統呼叫。select poll epoll 都是i o多路復用的機制。i o多路復用通過一種機制,可以監視多個描述符,一旦某個描述符就緒 一般是讀就緒或者寫就緒,就是這個檔案描述符...

I O 復用之 poll 函式

poll 函式提供的功能與 select 類似,不過在處理流裝置時,它能提供額外的資訊。include int poll struct pollfd fdarray,unsigned long nfds,int timeout 返回值 若有就緒描述符則為其數目,若超時則為 0,若出錯則為 1 str...