定时器组件设计

  • timefd时间描述符+epoll
  • 基于升序链表的定时器
  • 基于时间轮(环形队列+双向链表)定时器:
  • 基于时间堆(小根堆/优先队列)定时器:Libevent与Rust Async: futures-timer
  • 红黑树定时器(nginx红黑树实现)

Nginx源码分析札记

这是一篇草稿型札记,主要用来收集零散和不完整的记录,用于进行渐进式归纳。之前尝试过从main函数开始按顺序学习总结,但是发现nginx源码非常庞大,各种功能在不理解的前提下看起来互相嵌套耦合,导致容易迷失且理解有偏差,所有先写点零零散散的分析,不断的修正总结吧。

八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

APUE(五)线程

线程 线程创建 线程ID只有在它所属的进程上下文中才有意义。 1 2 3 4 5 6 #include<pthread.h>int pthread_equal(pthread_t tid1, pthread_t tid2); int pthread_self(void); //调用线程获取自身的线程ID int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg);

APUE(四)进程间通信(IPC)

进程间通信(InterProcess Communication, IPC) 匿名管道 有名管道 信号 消息队列 共享内存 信号量 套接字 管道 匿名管道 历史上,管道是半双工的(即数据只能在一个

APUE(三)信号

信号都以SIG开头,信号名都被定义为正整数常量,不存在编号为0的信号,kill函数对信号编号0有特殊的应用,这种信号称为空信号。 很多条件可以