今天没事了,在查看nginx源代码中看到ngx_list的结构,发现设计为链表数组的形式,不知道为什么这样设计

struct ngx_list_part_s {
void *elts;//指向数组的起始地址
ngx_uint_t nelts;//数组已经使用多少元素
ngx_list_part_t *next;//下一个链表元素的地址
}; typedef struct {
ngx_list_part_t *last;//指向链表最后一个数组元素
ngx_list_part_t part;//链表的首个数组元素
size_t size;//限制每一个数组元素的占用的空间大小
ngx_uint_t nalloc; //链表中数组元素一旦分配之后是不可更改的,nalloc表示每个ngx_list_part_t数组的容量,即最多可存储多少个数据
ngx_pool_t *pool;//链表中管理内存分配的内存池对象
} ngx_list_t;

只实现三个方法:

ngx_list_t *ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size);

static ngx_inline ngx_int_t ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size);私有方法 在ngx_list_create中调用

void *ngx_list_push(ngx_list_t *list);

最新文章

  1. 新特性AAtitti css3 新特性attilax总结titti css
  2. iOS 关于iphone6 和 iphone6 plus 的适配
  3. 三部曲一(数据结构)-1022-Gold Balanced Lineup
  4. eclipse快捷键调试总结【转】
  5. java的nio之:java的nio系列教程之selector
  6. WS之cxf简单实现
  7. Window 2008 R2 + IIS7.5 + VS2013 错误代码 0x80070002
  8. 云计算分布式大数据Hadoop实战高手之路第八讲Hadoop图文训练课程:Hadoop文件系统的操作实战
  9. nyoj 623
  10. 极客”一词,来自于美国俚语“geek”的音译,一般理解为性格古怪的人
  11. 201521123023《Java程序设计》第13周学习总结
  12. Jupyter Notebook 添加目录
  13. [INet] WebSocket 协议中的数据收发过程
  14. System.out.println()
  15. windows下数据挖掘相关包numpy、pandas的安装
  16. Python开发——基础
  17. Linux 线程编程3.0
  18. 牛客OI周赛7-普及组 解题报告
  19. gogs打造自己的git
  20. 架构:Screaming Architecture(转载)

热门文章

  1. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)
  2. 显示(explicit )与隐式(implicit)转换操作符
  3. P3197越狱
  4. 【分块】bzoj1901 Zju2112 Dynamic Rankings
  5. 【点分治】【哈希表】bzoj2599 [IOI2011]Race
  6. 输入输出流和String的混合使用-替换信息
  7. Spark1.4远程调试
  8. angularjs自动加载和手动加载
  9. ProgressDialog进度条对话框
  10. Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)