V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
chenqh
V2EX  ›  Python

Python _multiprocess 模块里面有个叫 SemLock 的东西是什么?

  •  
  •   chenqh · 2017-06-24 14:50:59 +08:00 · 3372 次点击
    这是一个创建于 2496 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 python 官方文档里面也没有找到 SemLock 的说明,但是
    在 celery 代码里面又看到 SemLock 在被使用,有人知道是怎么回事吗?

    第 1 条附言  ·  2017-06-24 16:46:47 +08:00
    能给个相关文档给我吗
    python 版那是最好不过了
    6 条回复    2017-06-25 01:10:58 +08:00
    zjsxwc
        1
    zjsxwc  
       2017-06-24 16:55:59 +08:00   ❤️ 1
    看名字就知道是信号量锁呀
    chenqh
        2
    chenqh  
    OP
       2017-06-24 17:37:58 +08:00
    @zjsxwc 有没有例子说明下呀
    noli
        3
    noli  
       2017-06-24 19:32:54 +08:00 via iPhone
    @chenqh 信号量没听过的话应该去查操作系统原理。
    chenqh
        4
    chenqh  
    OP
       2017-06-24 20:00:56 +08:00
    @noli 信号量不是 semaphore 这个吗 Semlock 难道等于 semaphore?
    zoues
        5
    zoues  
       2017-06-24 20:06:16 +08:00 via iPhone
    这么问不如翻番代码
    NoAnyLove
        6
    NoAnyLove  
       2017-06-25 01:10:58 +08:00   ❤️ 1
    multiprocessing 中的 SemLock 是用来构建 Semaphore 和 Mutex 的基类。见 Python27\Lib\multiprocessing\synchronize.py

    _multiprocessing 中的 SemLock 是对应的底层实现,根据不同的系统,调用不同的系统 API。比如 Windows 下用 CreateSemaphore,Linux/Unix 下用 sem_open,用于创建系统信号量。见 Python 源码\Modules\_multiprocessing\semaphore.c

    说真的,你有这闲工夫发帖子,不如自己翻一下代码就什么都懂了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3039 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:32 · PVG 08:32 · LAX 17:32 · JFK 20:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.