V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
StubbornHuang
V2EX  ›  C++

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

  •  
  •   StubbornHuang · Jul 26, 2023 · 2849 views
    This topic created in 1010 days ago, the information mentioned may be changed or developed.

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

    15 replies    2023-07-26 16:05:34 +08:00
    NessajCN
        1
    NessajCN  
       Jul 26, 2023
    ysc3839
        2
    ysc3839  
       Jul 26, 2023 via Android
    什么需求?
    minami
        3
    minami  
       Jul 26, 2023
    boost
    StubbornHuang
        4
    StubbornHuang  
    OP
       Jul 26, 2023
    @ysc3839 比如说有一个主进程,外部通过网络协议发送数据给这个主进程,然后主进程将这个请求分发给子进程,然后子进程处理完毕返回结果给客户,这个子进程中有比较耗时的初始化和业务处理操作
    ysc3839
        5
    ysc3839  
       Jul 26, 2023 via Android
    @StubbornHuang 如果子进程跑完就退出的话,似乎不怎么需要轮子,直接用系统 API 启新进程都挺简单的。
    如果子进程是一直运行的话,大概可以用 boost interprocess
    hankai17
        6
    hankai17  
       Jul 26, 2023
    有点儿像 pdns_recursor
    StubbornHuang
        7
    StubbornHuang  
    OP
       Jul 26, 2023
    @ysc3839 子进程处理完一个请求不会退出,等待主进程继续分配任务
    digitv
        8
    digitv  
       Jul 26, 2023
    @StubbornHuang 为啥一定要多进程呢?你这个需求多线程也可以啊
    byasm32
        9
    byasm32  
       Jul 26, 2023
    同意楼上。
    是 pthread_create 不好用吗。。?
    kkkbbb
        10
    kkkbbb  
       Jul 26, 2023
    这不就是 reactor 模式么,进程太重了吧,线程就可以了吧
    StubbornHuang
        11
    StubbornHuang  
    OP
       Jul 26, 2023
    @dynastysea 如果并发量大的话,要动态扩展几十个进程数,会不会比在同一个进程中扩展几十个子线程好?
    StubbornHuang
        12
    StubbornHuang  
    OP
       Jul 26, 2023
    @kkkbbb https://zhuanlan.zhihu.com/p/77265746 ,nginx 是用的多进程异步
    bruce0
        13
    bruce0  
       Jul 26, 2023
    子进程的任务是怎么来的 如果是从网络来的, 直接在子进程里监听网络 可以用 `SO_REUSEADDR` 这个特性 让多个子进程 监听同一个端口, 然后各自处理任务就好了 至于怎么开子进程 fork 一个就可以了吧
    StubbornHuang
        14
    StubbornHuang  
    OP
       Jul 26, 2023
    @bruce0 学到了,佬
    digitv
        15
    digitv  
       Jul 26, 2023
    @StubbornHuang 明显是线程更好啊,进程代价太大了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   896 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 18:58 · PVG 02:58 · LAX 11:58 · JFK 14:58
    ♥ Do have faith in what you're doing.