并发当中的 锁机制

在高并发情况下,锁机制能够保证数据的正确性。主要有两种机制:悲观锁和乐观锁 以用户购买商品为例: 一个用户购买商品的流程: a. 选择商品 获取库存。看库存的值是否大于要购买的数量。大于购买。 b.确认购买后生成订单信息。库存减少对应的数量。

1.悲观锁:就是A用户在购买商品时,对商品加上锁。其他用户不可以购买,对该商品的访问是阻塞的。 直到A用户购买完成。其他用户才可以购买。悲观锁不适用于高并发的场景下

2.乐观锁:是以版本号为原理的机制。数据一旦被改变,版本号就加一 库存的余量假如是100 版本为v1 A用户购买 获取库存 获取版本号 如果购买成功 写回库存数据时,要首先获取库存的版本 等于自己的话。直接写回。假如大于当前的版本,说明数据被其他人修改了,要获取最新版本的数据。在最新版本的数据基础之上减订单的数量。同时版本加1.

单机单线程 的锁机制 依赖框架比较容易解决 分布式情况下: 存在分布式锁。使用zookeeper 可以解决。利用zookeeper对外提供单一视图。每次进行数据操作时,先获取该资源的锁。 场景:访问量统计、库存统计等

转载于:https://my.oschina.net/nxxYqmvPOvsfH/blog/1791146

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值