我打算写一个序列生成器,它将被使用 在发布期间在我的 REST 资源实现类中生成 唯一身份。由于每个发布请求都由单独的线程处理, 我使变量 volatile 和方法同步。 我没有选择使用序列或其他东西 传统的 RDBMS 提供。
public class SequenceGen {
volatile static int n = 0;
public synchronized int nextNum(){
return n++;
}
}
这是我目前所拥有的,并计划创建一个变量 我的 REST 实现中的 SequenceGen。我的实际问题是 它在什么地方坏了?我测试了两个线程,但我没有看到 任何重复的值。
最佳答案
它会起作用,但是 AtomicInteger
是一种非常适合您的用例的内置类型。
AtomicInteger seq = new AtomicInteger();
int nextVal = seq.incrementAndGet();
关于java - Java 中用于唯一 ID 的序列生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22416826/