Go语言的乐观锁和悲观锁
一、基本概念
乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。
改变一个数值的三个步骤:
①把想修改的数值从某个地方取出来;
②在取出来的数值修改为期望值;
③把修改后的数值保存到原来的地方。
这里面有一个问题,把数值取出来进行修改的时候(做完了①步,正在做②步),如果有另一个过程(进程或线程)对同一个数值进行同样的操作(取值,修改),那么当两个过程都要做③的时候,就肯定有一个过程是白干活的。
悲观锁:悲观锁在操作数据时比较悲观,总认为会发生并发问题。
如果想修改一个数值,立马给这个数值