AtomicInteger—线程安全的ID自增对象
AtomicInteger,可以用做线程安全的ID自增对象,具体的资料网上搜索一下很多,这边就不列举了,下面是一个例子
?
public static ConcurrentHashMap<String, AtomicInteger> ID = new ConcurrentHashMap<String, AtomicInteger>();
?
ID.put("Character", new AtomicInteger(1000001));
ID.put("Monster", new AtomicInteger(1000010));
?
int intNextCrtID = ID.get("Character").getAndIncrement();
??int intNextMstID = ID.get("Monster").getAndIncrement();
??
??System.out.println("intNextCrtID : " + intNextCrtID);//1000001
??System.out.println("intNextMstID : " + intNextMstID);//1000010
??
??intNextCrtID = ID.get("Character").getAndIncrement();
??intNextMstID = ID.get("Monster").getAndIncrement();
??
??System.out.println("intNextCrtID : " + intNextCrtID);//1000002
??System.out.println("intNextMstID : " + intNextMstID);//1000011
?
备注:AtomicInteger 的最大值是2147483647,超过这个数字在递增的话就变成-2147483648