PHP中的uniqid在高并发下的重复问题

来源:互联网 发布:类似于日事清的软件 编辑:程序博客网 时间:2024/05/22 20:22

项目是一个高并发的web项目,并且会有后台进程(pcntl并发),两者都会利用uniqid去生成唯一id,今天发现一个bug,在高并发情况下,uniqid可能产生重复输出。

 

以下是测试代码:

 

测试方法: 命令行运行此程序,重定向输出到文件,然后利用下面程序检查重复:

 

解决方法: 我们现在是在uniqid后又加了rand(1, 10000),在1000并发,每进程10次uniqid的情况下,再没有产生重复。