C Web伺服器專案原始碼分析

2021-09-25 23:09:12 字數 2021 閱讀 7077

主函式

// **執行緒資源

// 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...