如何确保一个方法,或者一块代码在高并发情况下,同一时间只能被一个线程执行,单体应用可以使用 Java 并发处理相关的 API 进行控制,但单体应用架构演变为分布式微服务架构后,跨 JVM 或者跨进程的实例部署,就没办法通过 Java 锁的机制来控制并发了。那有哪些锁可以使用?Java 中的重量级锁 synchronize、Java 中的轻量级锁和 CAS、数据库行锁、悲观锁、乐观锁、分布式锁,这些锁之间有什么区别呢?
冯忠旗,京东数科高级架构师,全球软件开发大会讲师。2015~2018 年在宜信支付与结算中心担任支付结算平台技术负责人,2010~2014 年在 IBM CDL 中国研发中心担任 ITAAS 私有云 RingCloud 技术团队研发负责人。
作者回复: 👍👍👍
作者回复: 强👍
作者回复: 👍
作者回复: 这块本来不是本次的重点,后面展开下🙏
作者回复: 谢谢支持
作者回复: 😃😃
作者回复: 会考虑的,目前主要是工作时间紧张😊
作者回复: 谢谢
作者回复: 一般业务还是需要根据具体场景判断,不能一概而论。我讲的案例中建议是read committed
作者回复: 根据具体问题选择方案,比如使用redis锁解决了你的业务问题,其他的就不需要。也不是说sync没有场景,需要根据自己的业务场景判断。