目录
🚀前言🚀:
帅帅的汤圆又来了....为什么呢? 因为他无聊啊... 写的代码都是这么完美

下面这个实现的是自增序列, 一般用于生成订单流水或者是 订单号等等.....
如果你有更好的设计方案 可以下面留言哦..........
🚀弊端🚀:
服务重启 自增会重置,
🚀解决方案:
所以你可以在这个生成的基础之前 +年月日 例如20220107,你就截取 220107+自增序列, 具体实现按照你的需求来........................
这里的锁是 拿到锁 tryLock 然后释放锁unlock..... 防止并发, 个人感觉这个设计的 还行,强行夸自己...

🚀 增长的格式为1,2,3,4,5....................
private AtomicInteger atomicInteger = new AtomicInteger(1);
//自增序号
private Integer getIndex(){
Lock lock = new ReentrantLock();
boolean b = lock.tryLock();
if(b){
try {
atomicInteger.compareAndSet(99999999,1);
return atomicInteger.getAndIncrement();
}finally {
lock.unlock();
}
}else {
return null;
}
}
本文探讨了一种自增序列的实现方法,重点在于解决服务重启导致序号重置的问题,并介绍了使用ReentrantLock进行并发控制的设计。读者将学习如何结合日期生成唯一标识,以及如何确保在高并发场景下的线程安全。

7220

被折叠的 条评论
为什么被折叠?



