nginx中ngx_list的数据结构
2024-09-01 15:03:33
今天没事了,在查看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);
最新文章
- 新特性AAtitti css3 新特性attilax总结titti css
- iOS 关于iphone6 和 iphone6 plus 的适配
- 三部曲一(数据结构)-1022-Gold Balanced Lineup
- eclipse快捷键调试总结【转】
- java的nio之:java的nio系列教程之selector
- WS之cxf简单实现
- Window 2008 R2 + IIS7.5 + VS2013 错误代码 0x80070002
- 云计算分布式大数据Hadoop实战高手之路第八讲Hadoop图文训练课程:Hadoop文件系统的操作实战
- nyoj 623
- 极客”一词,来自于美国俚语“geek”的音译,一般理解为性格古怪的人
- 201521123023《Java程序设计》第13周学习总结
- Jupyter Notebook 添加目录
- [INet] WebSocket 协议中的数据收发过程
- System.out.println()
- windows下数据挖掘相关包numpy、pandas的安装
- Python开发——基础
- Linux 线程编程3.0
- 牛客OI周赛7-普及组 解题报告
- gogs打造自己的git
- 架构:Screaming Architecture(转载)
热门文章
- 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)
- 显示(explicit )与隐式(implicit)转换操作符
- P3197越狱
- 【分块】bzoj1901 Zju2112 Dynamic Rankings
- 【点分治】【哈希表】bzoj2599 [IOI2011]Race
- 输入输出流和String的混合使用-替换信息
- Spark1.4远程调试
- angularjs自动加载和手动加载
- ProgressDialog进度条对话框
- Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)