Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取在php中定义信号量资源的密钥?_Php_Semaphore - Fatal编程技术网

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

如何获取在php中定义信号量资源的密钥?,php,semaphore,Php,Semaphore,在php中,有一个函数sem_get,它返回一个id,可用于使用一些键访问System V信号量: resource sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] ) 给定一个信号量资源,我是否可以找出创建此资源使用了什么键(即什么整数值)?有没有办法“反转”sem\u get函数?我不这么认为。如果您使用两次sem\u get,您将得到不同的结果,但仍然使

在php中,有一个函数
sem_get
,它返回一个id,可用于使用一些
键访问System V信号量:

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

给定一个信号量资源,我是否可以找出创建此资源使用了什么
(即什么整数值)?有没有办法“反转”sem\u get
函数?

我不这么认为。如果您使用两次
sem\u get
,您将得到不同的结果,但仍然使用相同的键。

最好的方法是保持字典/关联数组映射
id
从sem\u get到用于创建它的

这个关联数组可以是本地的/独占的,用于您正在使用信号量的每个PHP进程,因为每个对sem_的调用都会得到不同id的结果,因此这些id对其他进程没有用处