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

jackxiang 2013-2-27 16:52 | |
      今天群里有人问关于生成唯一id的问题,有人说用uniqid来生成,但也有人说这个生成的id未必是唯一,尤其在高并发时,原文如下:
      项目是一个高并发的web项目,并且会有后台进程(pcntl并发),两者都会利用uniqid去生成唯一id,今天发现一个bug,在高并发情况下,uniqid可能产生重复输出

以下是测试代码:



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



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

来自:http://www.dewen.org/q/1425

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6069/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]