简单来说. 乐观锁就是先让所有并发访问都能访问到数据. 在他们提交数据的时候做版本判断. 如果版本不对. 就提交失败. 悲观锁就是 在并发访问的时候排队. 也可以看作是串行的提交. 比如redis. 用的就是乐观锁. 并发提交时. 先让大家都获取一个类似于版本记录的值. 然后真正提交时. 会对比这个值. 如果不符合就提交失败. 这样保证只有一个能提交成功. 而悲观锁会在提交前 获取一个类似于写锁的东西. 只准一个人在那写. 不能并发. 比如mysql如果你select 的时候使用了 for update 这样的语句. 也就相当于手动加上了一个悲观锁.
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
5 回答1.4k 阅读