在 python 官方文档里面也没有找到 SemLock 的说明,但是
在 celery 代码里面又看到 SemLock 在被使用,有人知道是怎么回事吗?
1
zjsxwc 2017-06-24 16:55:59 +08:00 1
看名字就知道是信号量锁呀
|
5
zoues 2017-06-24 20:06:16 +08:00 via iPhone
这么问不如翻番代码
|
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 说真的,你有这闲工夫发帖子,不如自己翻一下代码就什么都懂了。 |