sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

sem_remove移除信号量

描述

sem_remove(SysvSemaphore $semaphore): bool

sem_remove() 移除给定的信号量。

移除信号量后,它将不再可访问。

参数

semaphore

sem_get() 返回的信号量。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.0.0 semaphore 现在期望一个 SysvSemaphore 实例;以前,期望一个 resource

参见

添加注释

用户贡献的注释 1 条注释

donotcallme at iwillcallyou dot com
10 年前
sem_remove() 不应该作为正常清理/拆卸的一部分,并且应该非常少地调用,因为实现中存在 bug。

留下未使用的信号量似乎不会造成任何伤害,并且这样做可能会提高性能。如果您担心应用程序中存在太多未使用的信号量(例如,使用 ftok() 的文件缓存),可以使用一些模运算和简单的加法来为您的信号量创建有限的范围,这些范围在某个地方。例如,ftok() % 101 + 0xBADBEEF。确保用您自己的随机值替换 0xBADBEEF。该示例将范围限制为 101 个信号量。101 是一个素数 - 因此如果您想要更多或更少,请确保用素数替换它,因为素数在理论上可以帮助更均匀地分布值。
To Top