【发布时间】:2016-11-15 20:18:40
【问题描述】:
我想在多线程应用程序中使用System.currentTimeMillis() 的结果来生成唯一ID。这是我的代码:
class MyRunnableClass implements Runnable{
@Override
public void run() {
long thisValueShouldBeUnique = System.currentTimeMillis ();
}
}
我启动了 10 个运行 MyRunnableClass 对象 run() 方法的线程。
是不是,有时候System.currentTimeMillis ()在不同线程中的结果可能是一样的?
【问题讨论】:
-
唯一 ID 是什么?线程?
-
很有可能,您可以将一些线程标识符连接到您的唯一值
-
如果你是启动线程的人,为什么不在初始化时给它们一个唯一的 ID?你也可以使用 Thread.currentThread().getId()
-
如果您想要唯一性,请使用 GUID 而不是时间戳。
标签: java multithreading time