主函式
// **執行緒資源
// threadpool_destroy(tp, graceful_shutdown);
}全域性變數中讀取了配置檔案
tkeed.conf
root=./#
port=3000
thread_num=4
先看看讀取配置檔案函式,這個配置檔案進行埠執行緒數的基本設定。
這裡看看epoll.h函式的封裝
int events_num, char* path, tk_threadpool_t* tp);這幾個函式都是對epoll函式的封裝
struct epoll_event* events;
int tk_epoll_create(int flags)
// 註冊新描述符
// 修改描述符狀態
// 從epoll中刪除描述符
// 返回活躍事件數
int tk_epoll_wait(int epoll_fd, struct epoll_event* events, int max_events, int timeout)
下面是處理epoll傳來的事件
// 分發處理函式
void tk_handle_events(int epoll_fd, int listen_fd, struct epoll_event* events,
int events_num, char* path, tk_threadpool_t* tp)
else
// 將請求任務加入到執行緒池中
int rc = threadpool_add(tp, do_request, events[i].data.ptr);
// do_request(events[i].data.ptr);}}
}
Zookeeper 原始碼分析之伺服器(三)
一 前言 前面分析了zookeeperserver原始碼,由於quorumzookeeperserver的原始碼相對簡單,於是直接分析leaderzookeeperserver。二 leaderzookeeperserver原始碼分析 2.1 類的繼承關係 public class leaderzo...
Zookeeper 原始碼分析之伺服器(三)
一 前言 前面分析了zookeeperserver原始碼,由於quorumzookeeperserver的原始碼相對簡單,於是直接分析leaderzookeeperserver。二 leaderzookeeperserver原始碼分析 2.1 類的繼承關係 public class leaderzo...
python之epoll伺服器原始碼分析
usr bin env python coding utf8 import socket,select eol1 b r n eol2 b r n r n 拼接成的response 建立乙個服務端的socket,來監聽是否有請求過來 serversocket socket.socket socket...