久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來到小浪云!


【Linux】多進程高并發設計框架示例


多進程高并發設計框架建議根據cpu核心數量來設置子進程的數量。建議將對應某一進程綁定到某一cpu上(cpu親緣性),以充分利用多核系統的并發處理能力。多個進程在多個不同的核心上運行,實現負載均衡。職責明確,管理進程僅負責管理,工作進程負責處理業務邏輯。

示例:

multip_process.c

代碼語言:C

#define _GNU_SOURCE #include <sched.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <stdint.h> <p>// 函數指針定義,返回void,參數為void<em> typedef void (</em>spawn_proc_pt)(void *data);</p><p>// 工作進程的處理周期函數 static void worker_process_cycle(void *data);</p><p>// 啟動工作進程 static void start_worker_processes(int n);</p><p>// 創建子進程 pid_t spawn_process(spawn_proc_pt proc, void <em>data, char </em>name);</p><p>int main(int argc, char **argv) { // 啟動4個工作進程 start_worker_processes(4); // 管理子進程 wait(NULL); }</p><p>// 啟動子進程 void start_worker_processes(int n) { int i = 0; for (i = n - 1; i >= 0; i--) { // 第一個參數為工作進程的處理周期 spawn_process(worker_process_cycle, (void *)(intptr_t)i, "worker process"); } }</p><p>// 創建子進程 pid_t spawn_process(spawn_proc_pt proc, void <em>data, char </em>name) { pid_t pid; pid = fork(); // 創建子進程 switch (pid) { case -1: fprintf(stderr, "fork() failed while spawning "%s"n", name); return -1; case 0: proc(data); return 0; default: break; } printf("start %s %ldn", name, (long int)pid); return pid; }</p><p>// 設置CPU親緣關系,將進程綁定在其中的一個核上 static void worker_process_init(int worker) { cpu_set_t cpu_affinity; // 多核高并發處理 CPU_ZERO(&cpu_affinity); // 參數 - CPU編號 - 掩碼地址 CPU_SET(worker % CPU_SETSIZE, &cpu_affinity); // sched_setaffinity if (sched_setaffinity(0, sizeof(cpu_set_t), &cpu_affinity) == -1) { fprintf(stderr, "sched_setaffinity() failedn"); } }</p><p>void worker_process_cycle(void *data) { int worker = (intptr_t)data; // 工作進程初始化 worker_process_init(worker); // 干活 for (;;) { sleep(10); printf("pid %ld ,doing ...n", (long int)getpid()); } }

執行:

【Linux】多進程高并發設計框架示例

補充:

查看進程在CPU核心上的命令:

ps -eLo ruser,pid,lwp,psr,args

【Linux】多進程高并發設計框架示例

設置CPU親緣性后,可以發現每個子進程對應一個核心。若不設置,則存在進程與核心之間的切換,進程從一個核切換到另一個核,進行拷貝與復制,從而浪費了CPU的性能,降低了執行效率。有關函數指針和typedef的結合運用,請參考相關文章。

相關閱讀

主站蜘蛛池模板: tom影院亚洲国产日本一区 | 老外黑人欧美一级毛片 | 久久精品一区二区影院 | 加勒比色综合久久久久久久久 | 精品小视频在线观看 | 美女一丝不佳一级毛片香蕉 | 欧美激情一区二区三区高清视频 | 国产成人精品男人免费 | 亚洲国产成人久久综合碰 | 在线观看免费精品国产 | 欧美毛片性视频区 | 在线日本看片免费人成视久网 | 波多野结衣在线中文 | 久久88| v片在线播放 | 成人综合网址 | 亚洲在线中文字幕 | 欧美日韩一区二区三区视频 | 亚洲精品视频在线观看视频 | 香港一级特黄高清免费 | 亚洲国产日韩欧美综合久久 | 色综合久久久高清综合久久久 | 一区二区高清在线 | 国产亚洲精品成人a在线 | 国产短视频精品一区二区三区 | 久草在线色站 | 亚洲欧洲日本天天堂在线观看 | 成年美女黄网站小视频 | 99久久久久国产 | 九草在线 | 成人看片在线观看免费 | 美女毛片视频 | 99ri在线观看| 深夜福利爽爽爽动态图 | 成人免费网站久久久 | 久久99爰这里有精品国产 | 成年人毛片 | 欧美高清一级毛片免费视 | 成人免费观看一区二区 | 久久成人国产 | 久草在线免费资源 |