定时器组件设计
- timefd时间描述符+epoll
- 基于升序链表的定时器
- 基于时间轮(环形队列+双向链表)定时器:
- 基于时间堆(小根堆/优先队列)定时器:Libevent与Rust Async: futures-timer
- 红黑树定时器(nginx红黑树实现)
这是一篇草稿型札记,主要用来收集零散和不完整的记录,用于进行渐进式归纳。之前尝试过从main函数开始按顺序学习总结,但是发现nginx源码非常庞大,各种功能在不理解的前提下看起来互相嵌套耦合,导致容易迷失且理解有偏差,所有先写点零零散散的分析,不断的修正总结吧。
Nginx是一款集静态资源、负载均衡于一身的高性能Web服务器其特点是, 占有内存少,并发能力强。
关于Nginx的基本使用参考之前写过的文章:nginx的基本使用说明。
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。