国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

nginx 源碼學習筆記(九)——基本容器——queue

php中文網(wǎng)
發(fā)布: 2016-07-29 09:10:53
原創(chuàng)
924人瀏覽過

src/core/ngx_queue.{c|h}實現(xiàn)了一個隊列的操作邏輯,隊列的基本結(jié)構(gòu)為一個雙向隊列

基礎數(shù)據(jù)結(jié)構(gòu)為:

[cpp]?view plaincopyprint?

  1. typedef?struct?ngx_queue_s??ngx_queue_t;??
  2. ??
  3. struct?ngx_queue_s?{??
  4. ????ngx_queue_t??*prev;??
  5. ????ngx_queue_t??*next;??
  6. };??

根據(jù)數(shù)據(jù)結(jié)構(gòu)可以發(fā)現(xiàn),nginx的隊列操作和結(jié)構(gòu)只進行指針操作,不負責節(jié)點內(nèi)容空間的分配和保存,所以在定義自己的隊列節(jié)點的時候,需要自己定義數(shù)據(jù)結(jié)構(gòu)以及分配空間,并包含一個ngx_queue_t類型的成員,需要獲得原始的數(shù)據(jù)節(jié)點的時候,需要使用ngx_queue_data宏:

[cpp]?view plaincopyprint?

  1. src/core/ngx_queue.h??
  2. #define?ngx_queue_data(q,?type,?link)??(type?*)?((u_char?*)?q?-?offsetof(type,?link))??

另外,整個queue結(jié)構(gòu)中包含一個sentinel哨兵節(jié)點,他指向隊列的頭和尾。

nginx 源碼學習筆記(九)——基本容器——queue

看了下queue的源碼發(fā)現(xiàn)實現(xiàn)部分只有兩個方法:

[cpp]?view plaincopyprint?

  1. ngx_queue_t?*?ngx_queue_middle(ngx_queue_t?*queue)?//查找中間的queue??
  2. void?ngx_queue_sort(ngx_queue_t?*queue,?ngx_int_t?(*cmp)(const?ngx_queue_t?*,?const?ngx_queue_t?*))?//貌似是插入排序,//這里沒有多看??

ngx_queue_init初始化隊列

ngx_queue_empty清空節(jié)點中在某一個節(jié)點之前的所有節(jié)點

ngx_queue_insert_head插入一個節(jié)點在指定節(jié)點之后

ngx_queue_insert_after插入一個節(jié)點在指定節(jié)點之后
ngx_queue_insert_tail?插入一個節(jié)點在指定節(jié)點之前
ngx_queue_head?得到節(jié)點的下一個節(jié)點
ngx_queue_next?得到節(jié)點的下一個節(jié)點
ngx_queue_last?得到節(jié)點的上一個節(jié)點
ngx_queue_prev?得到節(jié)點的上一個節(jié)點
ngx_queue_sentinel?得到當前的節(jié)點
ngx_queue_remove?刪除隊列中的某一個節(jié)點
ngx_queue_data?得到隊列某一節(jié)點的數(shù)據(jù)
ngx_queue_split
ngx_queue_add
ngx_queue_middle
ngx_queue_sort

以上就介紹了nginx 源碼學習筆記(九)——基本容器——queue,包括了隊列,插入排序方面的內(nèi)容,希望對PHP教程有興趣的朋友有所幫助。

最佳 Windows 性能的頂級免費優(yōu)化軟件
最佳 Windows 性能的頂級免費優(yōu)化軟件

每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號