Java 多线程。不同线程上的相同 System.currentTimeMillis() 值

Ben*_*nas 3 java time multithreading

System.currentTimeMillis()我想使用多线程应用程序中的结果来生成唯一的 ID。这是我的代码:

    class MyRunnableClass implements Runnable{
        @Override
        public void run() {
            long thisValueShouldBeUnique = System.currentTimeMillis ();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我启动了 10 个运行 MyRunnableClass 对象 run() 方法的线程。System.currentTimeMillis ()有时不同线程的结果可能是相同的,这是真的吗?

小智 6

该函数System.currentTimeMillis()返回当前时间(以毫秒为单位)。因此,如果您的线程在同一毫秒内运行,是的,该函数将返回相同的结果。所以你可以像这样生成 UUID:UUID.randomUUID()