如何获取在php中定义信号量资源的密钥?

时间:2014-05-22 15:55:33

标签: php semaphore

在php中有一个函数sem_get,它返回一个id,可用于访问带有key的{​​V}信号量的System V信号量:

resource sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] )

给定一个信号量资源,我可以找出用于创建此资源的key(即什么整数值)?有没有办法反转' sem_get函数?

2 个答案:

答案 0 :(得分:0)

不要这么认为。好像你使用了两次sem_get,你会得到不同的结果,但仍然是相同的密钥。

答案 1 :(得分:0)

最好的方法是简单地保留一个字典/关联数组映射id从sem_get到用于创建它的key

这个关联数组可以是您使用信号量的每个PHP进程的本地/独占数据,因为每次调用sem_get会产生不同的id - 因此这些ID对其他进程无用。