redis解决资源竞争

  1. 什么是资源竞争:
    资源竞争就是比如有两个线程A和B,两个线程都对一个变量a进行加1,每个线程都要执行100次,此时a为0,理论上结束之后a为200,但是应为资源竞争的存在,a可能会小于200, 因为cpu在处理两个线程的时候, 是采用雨露均沾的方式, 可能在线程A刚刚将a值+1还没来得及将新值赋给a时, 就开始处理线程B了, 因此当线程B执行完全部的a+=1的操作后, 可能又会开始对线程A的未完成的操作, 而此时的操作停留在了完成运算未赋值的那一步, 因此在完成对a的赋值后, 就会覆盖掉之前线程A对a的+1操作
  2. redis解决资源竞争:
    redis里面有一个watch命令,这个命令可以解决这个问题,假设我们对一个键a执行watch,然后执行事务,由于watch的存在,他会监测键a,当a被修该之后,后面的事务就会执行失败,这就确保了多个连接同时来了,都监测着a,只有一个能执行成功,其他都返回失败
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值