ngx_list_t -- 2




200x200


概述单链表是一个较为简单的数据结构,对插入、删除节点具有较高的灵活性nginx 对该数据结构进行了一层封装 单链表结构// typedef struct ngx_list_t //

#技术帖    #linux    #unix    #算法   
打开文件与共享内存链表初始化我们说过nginx 是通过资源集中管理的方式管理资源的,即打开所有即将要用的资源,以备随时取用,无论是文件还是内存这样做的好处是避免了每次创建、打开资源造成的性能消耗针对内存管理,nginx 设计了内存池结构,而针对打开的文件,在 ngx_cycle_t 类型中保存了打开文件链表,用来管理所有已经打开的文件,这样避免了每次打开文件的性能消耗因此,在 ngx_cycle 初始化的过程中,很重要的一个环节就是复制所有 old_cycle 已经打开的文件// 打开文件链表初始化 if (old_cycle->open_files.part.nelts) { n = old_cycle->open_files.part.nelts; for (part = old_cycle->open_files.part.next; part; part = part->next) { n += part->nelts; } } else { n = 20; } if (ngx_list_init(&cycle->open_files, pool, n, sizeof(ngx_open_file_t)) != NGX_OK) {
#技术帖    #linux    #unix    #龙潭书斋   



京ICP备15018585号