在php中有一个函数sem_get
,它返回一个id,可以用来访问一些key
的System V信号量:
resource sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] )
给定一个信号量资源,我能找出什么key
(即什么整数值)被用来创建这个资源吗?是否有一种方法来"反转"sem_get
函数?
最好的方法是保持一个字典/关联数组,将id
从sem_get映射到用于创建它的key
。
对于使用信号量的每个PHP进程来说,这个关联数组可以是本地的/独占的,因为每次调用sem_get都会得到一个不同的id,因此这些id对其他进程来说是无用的。
不这么认为。如果你使用两次sem_get
,你会得到不同的结果,但仍然是相同的键。