C++有什么好的多进程轮子吗?

290 天前
 StubbornHuang

C++有什么好的多进程轮子吗? 对 nginx 不太深入,看介绍 nginx 就是使用的多进程方案,那么 C 艹有什么好的多进程轮子吗? 还是说只能自己手撕轮子。

2129 次点击
所在节点    C++
15 条回复
NessajCN
290 天前
ysc3839
290 天前
什么需求?
minami
290 天前
boost
StubbornHuang
289 天前
@ysc3839 比如说有一个主进程,外部通过网络协议发送数据给这个主进程,然后主进程将这个请求分发给子进程,然后子进程处理完毕返回结果给客户,这个子进程中有比较耗时的初始化和业务处理操作
ysc3839
289 天前
@StubbornHuang 如果子进程跑完就退出的话,似乎不怎么需要轮子,直接用系统 API 启新进程都挺简单的。
如果子进程是一直运行的话,大概可以用 boost interprocess
hankai17
289 天前
有点儿像 pdns_recursor
StubbornHuang
289 天前
@ysc3839 子进程处理完一个请求不会退出,等待主进程继续分配任务
dynastysea
289 天前
@StubbornHuang 为啥一定要多进程呢?你这个需求多线程也可以啊
byasm32
289 天前
同意楼上。
是 pthread_create 不好用吗。。?
kkkbbb
289 天前
这不就是 reactor 模式么,进程太重了吧,线程就可以了吧
StubbornHuang
289 天前
@dynastysea 如果并发量大的话,要动态扩展几十个进程数,会不会比在同一个进程中扩展几十个子线程好?
StubbornHuang
289 天前
@kkkbbb https://zhuanlan.zhihu.com/p/77265746 ,nginx 是用的多进程异步
bruce0
289 天前
子进程的任务是怎么来的 如果是从网络来的, 直接在子进程里监听网络 可以用 `SO_REUSEADDR` 这个特性 让多个子进程 监听同一个端口, 然后各自处理任务就好了 至于怎么开子进程 fork 一个就可以了吧
StubbornHuang
289 天前
@bruce0 学到了,佬
dynastysea
289 天前
@StubbornHuang 明显是线程更好啊,进程代价太大了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/959754

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX