AtomicInteger—线程保险的ID自增对象

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