CAS
这里讲的CAS 并不是CAS 的单点登录包。要了解单点登录的话,可以另外百度一下。
Compare And Set
意思很明显,先比较,后设置
为什么要先比较呢,就是因为在多线程的情况下,每次请求先后不一,这也就是乐观锁的概念。
一个update语句你就知道了:
old_num = 先获取现有的库存数量
new_num = #old_num - 1
update stock set stock_num = #new_num where product_id=#product_id and stock_num = #old_num
看到没有,先对应比较一下old_num是否对应上
其实,现在很多公司设计库表结构时候,除了create_by,create_time,update_by,update_time之外,还会多一个version字段,设计理念是一样的!
浙公网安备 33010602011771号