Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在使用 php 共享内存和信号量时。如何首先检查信号量和共享内存块的密钥是否与其他 php 实例发生冲突?另外,当使用 shm_attach 函数创建一个新块时,有没有办法验证该块还不存在?
我真的不明白你在这里问什么。共享内存的全部意义在于它是共享的——因此能够在不同的 PHP 实例中使用相同的密钥几乎是一项要求。
通常人们使用文件系统路径(语义上有意义)通过 ftok() 函数生成密钥(没有意义)。如果你想生成一个不被任何其他 php 实例共享的随机密钥,那么使用 tempnam() 创建一个新文件,然后 ftok 它。
使用 shm_attach 函数创建新块时,有没有办法验证该块尚未存在?
是的 - 在你创建它之后把它放在那里。如果在这两个步骤之间它是空的,那么它是新的。