使用ConcurrentHashMap和AtomicInteger實現,示例代碼如下:
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
public class SynchronousCounter {
public static void main(String[] args) {
ConcurrentHashMap<String, AtomicInteger> countMap = new ConcurrentHashMap<String, AtomicInteger>();
//有則放棄,無則設置
AtomicInteger count = countMap.putIfAbsent("grid1", new AtomicInteger(0));
System.out.print(count);
//獲取并加1
int precount = countMap.get("grid1").getAndIncrement();
System.out.print(precount);
//獲取當前值
int nowcount = countMap.get("grid1").get();
System.out.print(nowcount);
}
}