Queue引入篇

Queue引入篇

线程同步这块,之前讲了锁系列,现在把剩下的也说说

Queue大家都很熟悉,应用场景很多很多,不仅仅局限在线(进)程同步,很多业务场景都在使用。

在开始之前先看一个秒杀场景:一般都使用乐观锁,也就是大家经常提的CAS机制来实现,数据所在的内存值,预期值,新值。当需要更新时,判断当前内存值与之前取到的值是否相等,若相等,则用新值更新,若失败则不断重试( )

从数据库层面控制就是这样:(原子性操作)

我们用代码模拟一下:(Python里面没有 ,我们用之前学的条件变量实现一个)

模拟:

输出:(没错,没用锁一样高并发~)

如果你把 注释掉:(瞬间呵呵哒了)

如果你在修改的时候加个锁:

在这里说,其实没有多大意义,了解下即可(数据库最大连接数是有瓶颈的,后端项目里面一般都是使用缓存的 ,比如 的 、 的 和 ,还有就是我们下面要介绍的 了)

后面会说,引入部分不用深究,记住两个即可:

数据库层面的CAS机制(乐观锁)

Java里面 的模拟

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180909G13NOI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券