gpt4 book ai didi

java 如何获取一个long as UID

转载 作者:行者123 更新时间:2023-11-30 03:03:04 27 4
gpt4 key购买 nike

我有创建elasticsearch文档的方法。它使用 OpenStreetMap 对象 ID 作为 ES 文档 ID。我现在还想添加其他没有 OSM id 的文档。

我无法使用 UUID 生成器,因为该方法需要很长的时间。

获取长类型的“伪”UUID 的最佳方法是什么?

最佳答案

您可以实现生成 64 位随机序列的长 UID,即使用 AtomicLong()。

AtomicLong is a long value that may be updated atomically. An AtomicLong is used in applications such as atomically incremented sequence numbers

private static final AtomicLong TS = new AtomicLong();
public static long getUniqueTimestamp() {
return TS.incrementAndGet();
}

每次调用 getUniqueTimestamp() 都会返回进程的唯一 ID,从 0 开始。

您可以从更高的值开始,用当前时间初始化 Atomic:

private static final AtomicLong TS = new AtomicLong(System.currentTimeMillis() * 1000);

注意

这不是一个通用 UID,只是一个 UID!

关于java 如何获取一个long as UID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35443816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com