sem_remove() 不应作为正常清理/拆卸的一部分,并且由于实现中的错误,应很少调用它。
保留信号量似乎不会造成伤害,并且这样做可能更利于性能。如果您担心应用程序中有太多信号量(例如使用 ftok() 的文件缓存),您可以使用一些模数运算和简单的加法来创建您在偏远地区的信号量的有限范围的值。例如,ftok() % 101 + 0xBADBEEF。请务必将 0xBADBEEF 替换为您自己的随机值。此示例将范围限制为 101 个信号量。101 是一个素数 - 因此,如果您想要更多或更少,请务必将其替换为素数,因为素数理论上可以帮助更均匀地分布值。