关于AtomicInteger的使用,实现按年流水号并发自增
//静态变量存储id最大值
private static final AtomicInteger atomicNum = new AtomicInteger(1);
/**
* 生成申请编号流水
*/
@Override
public String createApplyNumber() {
/**
* @return
* 注:共享的编号自增操作是原子操作,线程安全的
*/
//线程安全的原子操作,所以此方法无需同步
int newNum = atomicNum.incrementAndGet();
//数字长度为5位,长度不够数字前面补0
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
String applyNumber = String.format("A"+year+"%06d", newNum);
return applyNumber;
}