Nginx高级数据结构总结之ngx_array_t 动态数组
Nginx高级数据结构总结之ngx_array_t 动态数组
一、 前言
在Nginx共享内存中,我们有使用动态数组来存储共享数据。动态数组ngx_array_t 有以下三个优点:
1) 访问速度快
2) 允许元素的不确定性
3) 负责元素
二、 接口说明
以上截图出自《深入理解Nginx》
三、 测试例子
typedef struct {
int num;
} TestNode;
ngx_array_t*dynamicArray = ngx_array_create(r->pool, 1, sizeof(TestNode));
ngx_array_init(dynamicArray,r->pool,1,sizeof(TestNode));
TestNode* a = ngx_array_push(dynamicArray);
a->num = 1;
a= ngx_array_push(dynamicArray);
a->num= 2;
TestNode* bb = ngx_array_push_n(dynamicArray, 3);
bb->num = 3;
(bb+1)->num = 4;
(bb+2)->num = 5;
TestNode* nodeArray = dynamicArray->elts;
ngx_uint_t arraySeq = 0;
for (; arraySeq < dynamicArray->nelts; arraySeq++)
{
a = nodeArray + arraySeq;
printf("array ele %d \n",a->num);
}
ngx_array_destroy(dynamicArray);
输出结果:
array ele 1
array ele 2
array ele 3
array ele 4
array ele 5
四、参考文献
《深入理解Nginx》