推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
beeeta
V2EX  ›  Python

Python 多进程能实现并行并突破 GIL 的限制在多个 CPU 上运行吗?一个 Python 解释器有一个 GIL 还是一个进程有一个 GIL 呢?

  •  
  •   beeeta · Dec 5, 2017 · 5223 views
    This topic created in 3217 days ago, the information mentioned may be changed or developed.
    10 replies  •  2018-04-04 09:26:20 +08:00
    wellsc
        1
    wellsc  
       Dec 5, 2017
    多进程没有 GIL 限制
    misaka19000
        2
    misaka19000  
       Dec 5, 2017
    一个进程一个 GIL
    jimzhong
        3
    jimzhong  
       Dec 5, 2017
    可以实现
    jingniao
        4
    jingniao  
       Dec 5, 2017 via Android
    一个进程一个解释器一个 GIL,多进程就有多个解释器多个 GIL
    ArthurMarcel
        5
    ArthurMarcel  
       Dec 5, 2017
    当然是一个进程一个 GIL 了,不然开多进程提升效率是为什么?
    kunluanbudang
        6
    kunluanbudang  
       Dec 5, 2017
    据我了解到的 Python 社区解决此类问题的套路
    重 IO
    1. 多线程还是可以用用的
    2. 协程 /asyncio/gevent 等等
    3. 多进程,每个核放一个 Python 进程
    4. PyPy


    重 CPU
    1. 多进程
    2. 关键模块用 C 重写, 规避 GIL 的限制
    3. PyPy
    kuro1
        7
    kuro1  
       Dec 6, 2017
    可以吃满 CPU,用 htop 看非常爽
    everhythm
        8
    everhythm  
       Dec 6, 2017
    不涉及 shell 的话可以用 py 带的 multiProcess 里面的 pool 实现进程池
    pool 默认是开 机器 cpu 个数的进程
    beeeta
        9
    beeeta  
    OP
       Dec 6, 2017
    谢谢各位的回复!:)
    wizardforcel
        10
    wizardforcel  
       Apr 4, 2018
    它相当于把 GIL 也复制了一份(因为是不同的 VA )。

    任何锁如果复制一份都会失效的。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2609 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 15:19 · PVG 23:19 · LAX 08:19 · JFK 11:19
    ♥ Do have faith in what you're doing.