nginx + Python 多进程的疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
leosirius666a
V2EX    程序员

nginx + Python 多进程的疑惑

  •  
  •   leosirius666a 2019-12-21 14:57:30 +08:00 2308 次点击
    这是一个创建于 2121 天前的主题,其中的信息可能已经有所发展或是发生改变。

    nginx 处理并发请求时通过多个 worker (多进程)实现的,每个 worker 会去启动一个 wsgi app,各个 worker 启动的 wsgi app 之间 GIL 是独立的,不会相互锁住。所以多核情况下,并发请求是可以并行(同一时刻,不同的核跑不同的 web app 实例)处理的

    以上是我的猜想,有没有大佬来证实一下,或者指正一下

    6 条回复    2019-12-21 15:50:31 +08:00
    zjsxwc
        1
    zjsxwc  
       2019-12-21 15:06:00 +08:00
    1. 你漏掉了 wsgi server 比如那个叫 uwsgi 的东西,其实就是 java 里 tomcat、php 里 fpm 一样的东西
    2. 在软件工程里没有并行这个用语我们统一都叫“并发”
    ljpCN
        2
    ljpCN  
       2019-12-21 15:21:18 +08:00 via Android
    @zjsxwc 第一次听说软件工程里没有并行这个用语。。楼上能解释一下吗
    zjsxwc
        3
    zjsxwc  
       2019-12-21 15:30:00 +08:00 via Android
    @ljpCN #2 原文:“@zjsxwc 第一次听说软件工程里没有并行这个用语。。楼上能解释一下吗”
    回复:

    并行是运行时出现的,他不但受到硬件影响,比如同一台计算机里不同进程、网络中不同计算机里不同进程,最主要的还受到上下文环境影响,比如在代码层面一个进程中你上面 10 行与下面 10 行的执行也是认为并行,即使存在先后顺序,所以夸张的说一切皆是并行,这毫无意义。
    no1xsyzy
        4
    no1xsyzy  
       2019-12-21 15:43:29 +08:00
    @zjsxwc 不是软工不谈并行,是 Web 软工不谈并行,况且并行是 “底层细节” 而不是 “上层表现”,去控制它没意义。
    真的并行就是 CPU 密集才需要重点考虑。
    zjsxwc
        5
    zjsxwc  
       2019-12-21 15:48:14 +08:00
    @no1xsyzy
    简单点说,除了 verilog、vhld 这种硬件设计语言,
    软件工程中我们写的代码都是只考虑处理并发,而不考虑并行的,几十年前单核心的 cpu 上照样能跑的代码肯定是物理上不并行,行为上能处理并发的
    rogwan
        6
    rogwan  
       2019-12-21 15:50:31 +08:00 via iPhone
    是的,一般 Python 用 uwsgi 或 gunicorn 这类工具实现多进程,就不存在 gil 锁的问题了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     945 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:48 PVG 06:48 LAX 15:48 JFK 18:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86