gpt4 book ai didi

java - 需要同步增量计数器?

转载 作者:IT老高 更新时间:2023-10-28 21:07:22 24 4
gpt4 key购买 nike

我使用整数作为计数器。整数只会增加,而且肯定不止一个线程会同时增加它。该计数器的值在程序执行结束时读取,此时没有其他线程将尝试访问其值。

我假设我不必为这种仅增量计数器使用锁或任何类型的同步。这是正确的吗?如果这有什么不同,我会用 Java 编写代码。

最佳答案

如果您只是使用 intlong 变量,那么您需要同步 - 递增涉及读/本地递增/写入,这远非原子操作。 (即使变量是 volatile 以避免过时的内存模型问题,您仍然有三个不同的操作,并且有可能在任何一对之间被抢占。)

幸运的是 Java 提供了 AtomicIntegerAtomicLong 可以在没有任何同步的情况下使用:

private final AtomicLong counter = new AtomicLong();

...

counter.incrementAndGet(); // No need for synchronization

关于java - 需要同步增量计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646269/

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