Java 具有同步支持的自动递增编号

Java 具有同步支持的自动递增编号,java,concurrency,Java,Concurrency,我需要生成从0开始的唯一自动增量id。下面是我的用例。 我有两个字段。一个是前缀,另一个是数字。 保存每条记录时,自动增加数字,并使用前缀和save表示。 前缀#测试- 数字#0 保存之前,请连接两个值,如(test-0)。 任何人都可以帮我解决这个问题。您可以使用随java 7发布的AtomicInteger或AtomicLong类: 文件: 示例: AtomicInteger类为您提供了一个int变量,该变量可以进行原子读写,还包含高级原子操作,如compareAndSet()。Atomi

我需要生成从0开始的唯一自动增量id。下面是我的用例。 我有两个字段。一个是前缀,另一个是数字。 保存每条记录时,自动增加数字,并使用前缀和save表示。 前缀#测试- 数字#0 保存之前,请连接两个值,如(test-0)。
任何人都可以帮我解决这个问题。

您可以使用随java 7发布的AtomicInteger或AtomicLong类:

文件:

示例:

AtomicInteger类为您提供了一个int变量,该变量可以进行原子读写,还包含高级原子操作,如compareAndSet()。AtomicInteger类位于java.util.concurrent.atomic包中

AtomicInteger最常见的用途是处理由不同线程同时访问的计数器。原子包提供了非常有用的类,这些类支持单变量上的无锁和线程安全编程

通过传递0,可以使用0(默认值)对其进行初始化。之后,您可以连接前缀(静态变量)和concat,例如:

test+at.getAndIncrement(); // getAndIncrement() - Atomically increments by one the current value.

我希望这有帮助。

您可以使用随java 7发布的AtomicInteger或AtomicLong类:

文件:

示例:

AtomicInteger类为您提供了一个int变量,该变量可以进行原子读写,还包含高级原子操作,如compareAndSet()。AtomicInteger类位于java.util.concurrent.atomic包中

AtomicInteger最常见的用途是处理由不同线程同时访问的计数器。原子包提供了非常有用的类,这些类支持单变量上的无锁和线程安全编程

通过传递0,可以使用0(默认值)对其进行初始化。之后,您可以连接前缀(静态变量)和concat,例如:

test+at.getAndIncrement(); // getAndIncrement() - Atomically increments by one the current value.

我希望这能有所帮助。

Ignite是一款开源的支持序列生成器,使用prefix.Ignite序列id生成器


您可以创建concurrentHashMap,其中key作为前缀,AtomicInteger作为值。您需要某种持久性,因为如果服务器在内存中重新启动,值不应该从零开始。

Ignite是使用前缀的开源支持序列生成器。Ignite序列id生成器


您可以创建concurrentHashMap,其中key作为前缀,AtomicInteger作为值。您需要某种持久性,因为如果服务器在内存中重新启动,值不应该从零开始。

因为哪个版本的Ignite支持序列生成?此框架的其他最有价值的功能是什么?我们在项目中使用的是最新版本,我认为Id生成器支持初始版本。与Hazelcast类似,它支持大多数分布式数据结构,如队列、集合、原子类型(即AatomicLong)、分布式锁等。因为哪个版本Ignite支持序列生成?此框架的其他最有价值的功能是什么?我们在项目中使用的是最新版本,我认为Id生成器支持初始版本。与Hazelcast类似,它支持大多数分布式数据结构,如队列、集合、原子类型(即AatomicLong),分布式锁等。Atomiclong支持并发用户吗?Atomiclong支持并发用户吗?