乐观锁
乐观锁:顾名思义总是乐观的认为这个数据没有在同一时间被其他人操作变更
实现:CAS(compare and set)
优点:吞吐量高,适用于数据冲突相对较少的场景
缺点:受限于外部系统,可能会引起脏读,且在数据冲突很大的场景下,性能反而可能更低
内存实现CAS/ABA/AtomicStampedReference/; 数据库乐观锁实现:update goods set num= newnum, version = oldversion+1 where version = oldversion;
悲观锁:
内存:lock,syncrhoized是一种独占锁.
数据库: select…for update;但是: select…for update不会阻塞select的查询。