勿忘初心 厚德载物

《深入浅出Spring Boot 2.X》高并发总结

Posted on By JettyLee

悲观锁

SQL 最后加入 for update 语句

乐观锁

利用数据库 字段 version 控制

update  **  set version =version+1 where version =#{version}

时间戳限制重入的乐观锁

先将事务设置读写提交

long start=System.currentTimeMillis();
while(true){
    long end=System.currenTimeMillis();
    if(end-start>100){//100 ms 
        return false;
    }
    ...
    int result=操作数据库;
    if(result==0){
        continue;
    }
    ...
    return true;
}

使用限定次数重入的乐观锁

注:不论是时间戳还是限定次数,只是为了减低失败的次数