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