亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

nginx線程池源碼分析

2024-08-30 12:26:29
字體:
來源:轉載
供稿:網友

周末看了nginx線程池部分的代碼,順手照抄了一遍,寫成了自己的版本。實現上某些地方還是有差異的,不過基本結構全部摘抄。

  在這里分享一下。如果你看懂了我的版本,也就證明你看懂了nginx的線程池。

  本文只列出了關鍵數據結構和API,重在理解nginx線程池設計思路。完整代碼在最后的鏈接里。

  1.任務節點

typedef void (*CB_FUN)(void *);//任務結構體typedef struct task{  void    *argv; //任務函數的參數(任務執行結束前,要保證參數地址有效)  CB_FUN    handler; //任務函數(返回值必須為0  非0值用作增加線程,和銷毀線程池)  struct task *next; //任務鏈指針}zoey_task_t;

  handler為函數指針,是實際的任務函數,argv為該函數的參數,next指向下一個任務。

  2.任務隊列

typedef struct task_queue{  zoey_task_t *head; //隊列頭  zoey_task_t **tail;  //隊列尾  unsigned int maxtasknum; //最大任務限制  unsigned int curtasknum; //當前任務數}zoey_task_queue_t;

  head為任務隊列頭指針,tail為任務隊列尾指針,maxtasknum為隊列最大任務數限制,curtasknum為隊列當前任務數。

  3.線程池

typedef struct threadpool{  pthread_mutex_t  mutex; //互斥鎖  pthread_cond_t   cond;  //條件鎖  zoey_task_queue_t    tasks;//任務隊列  unsigned int    threadnum; //線程數  unsigned int    thread_stack_size; //線程堆棧大小}zoey_threadpool_t;

  mutex為互斥鎖 cond為條件鎖。mutex和cond共同保證線程池任務的互斥領取或者添加。

  tasks指向任務隊列。

  threadnum為線程池的線程數

  thread_stack_size為線程堆棧大小 

  4.啟動配置

//配置參數typedef struct threadpool_conf{  unsigned int threadnum;  //線程數  unsigned int thread_stack_size;//線程堆棧大小  unsigned int maxtasknum;//最大任務限制}zoey_threadpool_conf_t;

  啟動配置結構體是初始化線程池時的一些參數。

  5.初始化線程池

  首先檢查參數是否合法,然后初始化mutex,cond,key(pthread_key_t)。key用來讀寫線程全局變量,此全局變量控制線程是否退出。

  最后創建線程。

zoey_threadpool_t* zoey_threadpool_init(zoey_threadpool_conf_t *conf){  zoey_threadpool_t *pool = NULL;  int error_flag_mutex = 0;  int error_flag_cond = 0;  pthread_attr_t attr;  do{    if (z_conf_check(conf) == -1){ //檢查參數是否合法      break;    }    pool = (zoey_threadpool_t *)malloc(sizeof(zoey_threadpool_t));//申請線程池句柄    if (pool == NULL){      break;    }    //初始化線程池基本參數    pool->threadnum = conf->threadnum;    pool->thread_stack_size = conf->thread_stack_size;    pool->tasks.maxtasknum = conf->maxtasknum;    pool->tasks.curtasknum = 0;    z_task_queue_init(&pool->tasks);      if (z_thread_key_create() != 0){//創建一個pthread_key_t,用以訪問線程全局變量。      free(pool);      break;    }    if (z_thread_mutex_create(&pool->mutex) != 0){ //初始化互斥鎖      z_thread_key_destroy();      free(pool);      break;    }    if (z_thread_cond_create(&pool->cond) != 0){ //初始化條件鎖      z_thread_key_destroy();      z_thread_mutex_destroy(&pool->mutex);      free(pool);      break;    }    if (z_threadpool_create(pool) != 0){    //創建線程池      z_thread_key_destroy();      z_thread_mutex_destroy(&pool->mutex);      z_thread_cond_destroy(&pool->cond);      free(pool);      break;    }    return pool;  }while(0);  return NULL;}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品少妇videofree| 精品亚洲夜色av98在线观看| 成人高清视频观看www| 欧美日韩在线另类| 成人美女av在线直播| 福利一区视频在线观看| 国产精品美女av| 成人午夜高潮视频| 成人在线免费观看视视频| 国产成人免费av电影| 成人xxxxx| 久久在线观看视频| 欧美精品在线免费播放| 福利微拍一区二区| 日韩欧美中文免费| 国产精品夜间视频香蕉| 国产精品mp4| 日韩av网站导航| 国产精品成人免费视频| 欧美成人精品不卡视频在线观看| 影音先锋欧美精品| 超碰97人人做人人爱少妇| 久久久久久久久久久国产| 欧美午夜片欧美片在线观看| 欧美中文在线视频| 一区二区三区国产视频| 国产精品亚洲视频在线观看| 另类天堂视频在线观看| 日韩激情在线视频| 中文字幕亚洲专区| 欧美午夜无遮挡| 最新91在线视频| 欧美大成色www永久网站婷| 中文字幕日韩精品有码视频| 久久天天躁狠狠躁夜夜躁2014| 亚洲全黄一级网站| 欧美在线性视频| 国产精品美女久久久免费| 成人黄色片在线| 91国产高清在线| 国产欧美日韩91| 久久国产加勒比精品无码| 欧美久久精品一级黑人c片| 日韩性xxxx爱| yw.139尤物在线精品视频| 2019中文在线观看| 91精品国产高清久久久久久91| 久久最新资源网| 久久视频免费在线播放| 亚洲影影院av| 精品国产鲁一鲁一区二区张丽| 96pao国产成视频永久免费| 亚洲人成伊人成综合网久久久| 日本最新高清不卡中文字幕| 精品久久久精品| 日韩精品视频免费专区在线播放| 亚洲视频在线观看网站| 国产精品扒开腿爽爽爽视频| 国产精品视频成人| 久久中文字幕国产| 成人中文字幕在线观看| 日韩电影网在线| 日韩欧美高清视频| 午夜精品一区二区三区在线视| 欧美大片免费看| 精品国产1区2区| 久久97久久97精品免视看| 久久久中文字幕| 亚洲成**性毛茸茸| 亚洲精品久久久久久下一站| 97在线观看视频| 欧美午夜视频一区二区| 欧洲s码亚洲m码精品一区| 久久久国产精品亚洲一区| 欧美成人精品一区二区| 久久99亚洲精品| 91牛牛免费视频| 国产主播在线一区| 欧美精品久久久久久久| 久久精品电影网| 欧美日韩xxxxx| 国产免费一区二区三区香蕉精| 国产成人综合精品| 欧美性生交xxxxx久久久| 成人国产精品av| 国产男人精品视频| 在线播放日韩精品| 亚洲xxx视频| 国产精品久久久久久久久久| 亚洲国产精品久久91精品| 成人亚洲欧美一区二区三区| 日韩电影中文 亚洲精品乱码| 久久久久久高潮国产精品视| 亚洲天堂2020| 日韩女在线观看| 色噜噜国产精品视频一区二区| 日韩视频免费大全中文字幕| 丝袜美腿精品国产二区| 97婷婷大伊香蕉精品视频| 欧美日韩亚洲天堂| 日韩精品视频免费| 国产成人精品一区二区在线| 欧美老少配视频| 懂色av中文一区二区三区天美| 久久精品国产清自在天天线| 国产精品高清在线观看| 亚洲欧美成人精品| 欧美性猛交xxxx富婆| 91精品国产乱码久久久久久久久| 欧美怡红院视频一区二区三区| 性欧美亚洲xxxx乳在线观看| 亚洲天堂日韩电影| 精品久久国产精品| 国产精品白丝jk喷水视频一区| 久久久久久91| 欧美国产日韩免费| 国产综合久久久久久| 久久久久久久97| 51ⅴ精品国产91久久久久久| 538国产精品一区二区免费视频| 亚洲成av人片在线观看香蕉| 国产精品色悠悠| 中文字幕视频一区二区在线有码| 久久亚洲综合国产精品99麻豆精品福利| 91成人精品网站| 69av视频在线播放| 97视频色精品| 国产精品偷伦一区二区| 2019中文字幕在线免费观看| 欧美成aaa人片在线观看蜜臀| 亚洲国产小视频在线观看| 日韩免费观看网站| 日韩av综合中文字幕| 亚洲电影中文字幕| 亚洲人成五月天| 亚洲人成电影网站色…| 欧美午夜无遮挡| 91九色单男在线观看| 永久免费毛片在线播放不卡| 97超级碰碰碰| 深夜福利亚洲导航| 2019最新中文字幕| 欧美日韩亚洲一区二| 在线观看精品自拍私拍| www.亚洲免费视频| 成人午夜小视频| 日韩欧美国产黄色| 欧美亚洲日本黄色| 亚洲精品理论电影| 欧美高跟鞋交xxxxhd| 亚洲免费av网址| 日韩av成人在线| 国产精品久久精品| 2021久久精品国产99国产精品| 成人xvideos免费视频| 国产亚洲日本欧美韩国| 欧美有码在线观看| 国产丝袜一区二区三区免费视频| 欧美一级在线播放| 欧美日韩裸体免费视频| 操人视频在线观看欧美| 91av在线不卡| 国模叶桐国产精品一区| 国产精品入口日韩视频大尺度|