为何CPython多进程Semaphore在Alpine系统中不创建命名信号量?
Alpine系统中CPython未生成命名信号量的异常问题
- 在常规Unix系统环境下,CPython的
multiprocessing.Semaphore应当创建命名信号量,但在Alpine系统中执行相同操作时,出现两个异常现象:- 未在
/dev/shm路径下生成任何信号量文件 - 实例化的Semaphore对象底层
SemLock的name属性为空
- 未在
Python交互复现示例:
>>> import multiprocessing as mp >>> a = mp.Semaphore() >>> a.acquire() True >>> a._semlock.name >>>
检查/dev/shm路径的结果:
/ # ls -l /dev/shm total 0
注:CPython中负责信号量创建的逻辑位于Modules/_multiprocessing/semaphore.c的第516行。
内容的提问来源于stack exchange,提问作者Marek
相关产品推荐
相关产品推荐

