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

2017-06-24 14:50:59 +08:00
 chenqh

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

3381 次点击
所在节点    Python
6 条回复
zjsxwc
2017-06-24 16:55:59 +08:00
看名字就知道是信号量锁呀
chenqh
2017-06-24 17:37:58 +08:00
@zjsxwc 有没有例子说明下呀
noli
2017-06-24 19:32:54 +08:00
@chenqh 信号量没听过的话应该去查操作系统原理。
chenqh
2017-06-24 20:00:56 +08:00
@noli 信号量不是 semaphore 这个吗 Semlock 难道等于 semaphore?
zoues
2017-06-24 20:06:16 +08:00
这么问不如翻番代码
NoAnyLove
2017-06-25 01:10:58 +08:00
multiprocessing 中的 SemLock 是用来构建 Semaphore 和 Mutex 的基类。见 Python27\Lib\multiprocessing\synchronize.py

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

说真的,你有这闲工夫发帖子,不如自己翻一下代码就什么都懂了。

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

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

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

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

© 2021 V2EX