Untitled

乐观锁

定义

乐观锁在操作数据时非常乐观,认为别的线程不会同时修改数据,所以不会上锁,但是在更新的时候会判断一下在此期间别的线程有没有更新过这个数据。

大体流程

  1. 两个线程,如线程A、线程 B 直接获取同步资源数据,不会加锁,执行各自的操作
  2. 线程 A,B 在更新同步资源之前,都会先判断资源是否被其他线程修改
  3. 如果同步资源没有被其他线程修改,那么直接更新内存中同步资源的值。
  4. 如果同步资源被其他线程修改了,那么根据需要执行不同的操作,直接报错或者重试。

乐观锁的实现