1. 高性能定时器:时间轮,时间堆 (處理超時時間,如nginx使用紅黑樹,找出最可能超時的事件)nginx
2. 高性能服务器程序框架:(nginx 使用的是基於事件模型,epoll,不阻塞,異步處理)服务器
两种高效的事件处理模式: Reactor模式 Proactor模式并发
两种高效的并发模式:半同步/半异步模式 领导者/追随者模式框架
有限状态机异步
提升服务器性能的其余建议:池(如nginx,在获得一個連接時,會創建ngx_connection_t; 在获得一份請求的時,會創建ngx_request_t; 這些結構體的分配都在ngx_pool_t上分配,但請求完畢時或斷開連接時,釋放ngx_pool_t; 免除了屡次使用malloc和free,且ngx_pool_t可重用)数据复制,上下文切换和锁 (nginx worker process 綁定cpu, 省去上下文切換;鎖,在各個worker process shared 數據使用自旋鎖,如ngx_http_limit_req_module, 記錄每個ip的請求次數,這些信息各個進程是共享的)性能
3.进程池和线程池 (基於事件驅動,綁定cpu,高效;支持線程池,為了支持第三方的庫,可能有阻塞I/O操做,或者寫第三方模塊的沒注意處理事件驅動,有導致主線程阻塞的行為)线程