使用ConcurrentHashMap和AtomicInteger實(shí)現(xiàn),示例代碼如下:
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>();
//有則放棄,無(wú)則設(shè)置
AtomicInteger count = countMap.putIfAbsent("grid1", new AtomicInteger(0));
System.out.print(count);
//獲取并加1
int precount = countMap.get("grid1").getAndIncrement();
System.out.print(precount);
//獲取當(dāng)前值
int nowcount = countMap.get("grid1").get();
System.out.print(nowcount);
}
}