您当前的位置: 首页 > 

阿里P6面经之避免锁释放的“副作用”

发布时间:2020-11-09 23:10:37 ,浏览量:0

  点击上方“JavaEdge”,关注公众号

设为“星标”,好文章不错过!

面试题

锁被自动释放导致的重复逻辑执行了,你将如何发现和解决这问题?

讲解

锁释放和重复执行问题

锁建议使用synchronized,在JDK1.6后,synchronized与Lock性能上差距很小了(优化了很多,自旋锁,自适应自旋锁、偏向锁,轻量级锁等),synchronized也不用程序获取和释放锁,同步代码块是通过monitorenter monitorexit实现的,同步方法是方法头中有ACC_SYNCHRONIZED标志;在分布式场景下,可以考虑etcd,etcd支持锁的自动续期等; 重复执行:首先在锁的使用场景下做好处理,尽量避免重复执行,但业务层面一定要做好幂等。

锁超时自动释放导致重复执行

可以用锁续期,如redisson的watchdog;或者保证业务的幂等性,重复执行也没问题。

往期推荐

阿里P8架构师教你kill代码重复/大量ifelse

一文讲清RedisCluster

阿里Java架构师教你写代码-如何校验参数?

你真的深知JWT(JSON Web Token)了吗?

OAuth 2.0实战(一)-通俗光速入门

目前交流群已有 800+人,旨在促进技术交流,可关注公众号添加笔者微信邀请进群

喜欢文章,点个“在看、点赞、分享”素质三连支持一下~

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    115984博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0429s