【自增序列】 这是谁设计的 我直呼汤圆是高手

本文探讨了一种自增序列的实现方法,重点在于解决服务重启导致序号重置的问题,并介绍了使用ReentrantLock进行并发控制的设计。读者将学习如何结合日期生成唯一标识,以及如何确保在高并发场景下的线程安全。

目录

🚀前言🚀:

🚀弊端🚀:



🚀前言🚀:

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

下面这个实现的是自增序列, 一般用于生成订单流水或者是 订单号等等.....

如果你有更好的设计方案 可以下面留言哦..........

🚀弊端🚀:

服务重启 自增会重置,

🚀解决方案:

所以你可以在这个生成的基础之前 +年月日 例如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;
    }
}
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是汤圆丫

怎么 给1分?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值