并发模型 | 【UNP】对应 | 多进程 | 多线程 | 阻塞IO | IO复用 | 长连接 | 并发性 | 多核 | 开销 | 互通 | 顺序性 | 线程数 | 特点 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accept+read/write | 0 | 否 | 否 | 是 | 否 | 否 | 无 | 否 | 低 | 否 | 是 | 是 | 一次服务一个客户 |
accept+fork | 1 | 是 | 否 | 是 | 否 | 是 | 低 | 是 | 高 | 否 | 是 | 变 | process-per-connection |
accept+thread | 6 | 否 | 是 | 是 | 否 | 是 | 中 | 是 | 中 | 是 | 是 | 是 | thread-per-connection |
prefork | 2/3/4/5 | 是 | 否 | 是 | 否 | 是 | 低 | 是 | 高 | 否 | 是 | 变 | 见【UNP】 |
pre threaded | 7/8 | 否 | 是 | 是 | 否 | 是 | 中 | 是 | 中 | 是 | 是 | 变 | 见【UNP】 |
poll(reactor) | 6.8节 | 否 | 否 | 否 | 是 | 是 | 高 | 否 | 低 | 是 | 是 | 常 | 单线程reactor |
reactor+thread-per-task | 无 | 否 | 是 | 否 | 是 | 是 | 中 | 是 | 中 | 是 | 否 | 变 | thread-per-request |
reactor+worker thread | 无 | 否 | 是 | 否 | 是 | 是 | 中 | 是 | 中 | 是 | 是 | 变 | worker-thread-per-connection |
reactor+thread pool | 无 | 否 | 是 | 否 | 是 | 是 | 高 | 是 | 低 | 是 | 否 | 常 | 主线程io,工作线程计算 |
reactors in threads | 无 | 否 | 是 | 否 | 是 | 是 | 高 | 是 | 低 | 是 | 是 | 常 | one loop per thread(muduo) |
reactors in process | 无 | 是 | 否 | 否 | 是 | 是 | 高 | 是 | 低 | 否 | 是 | 常 | one loop per process(nginx) |
reactors+thread pool | 无 | 否 | 是 | 否 | 是 | 是 | 高 | 是 | 低 | 是 | 否 | 常 | 最灵活的io与cpu配置 |
常见并发模型对比
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带...
- 原创声明作者: 刘丹冰Aceld 本文主要介绍常见的Server的并发模型,这些模型与编程语言本身无关,有的编程语...
- 引出线程池 线程是并发编程的基础,前面的文章里,我们的实例基本都是基于线程开发作为实例,并且都是使用的时候就创建一...