2011-02-03 173 views

回答

8

这是相当不可能的,你会得到一个冲突,是的(除非你是在高负载的系统,在这种情况下,它可能),但仍有可能。

Java具有用于生成唯一标识符的现有机制,但是 - java.util.UUID。它有方法来生成随机ID。

我强烈建议使用它。

+0

在失败的概率而言,我怀疑毫秒办法能够生存下去的单元测试。 – Dolph 2011-02-03 00:25:32

+0

@Dolph - 或系统负载测试。当然,它不应该......如果你正在做它们。 – 2011-02-03 00:57:52

16

不,这是不安全的。毫秒在CPU周期中是很长时间的(它们以每秒数十亿次循环运行,而不是数千次),所以如果一次有多个请求进来,或者如果多个线程都尝试创建数据库条目,它们将看到相同的CPU时间并且最终会碰撞钥匙。如果系统时钟以某种方式重置或更改时间较早,您也会遇到麻烦。