悲观锁,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突, 所以在数据开始读取的时候就把数据锁定住。(数据锁定:数据将暂时不会得到 修改)
***乐观锁,***认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候, 才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信 息。让用户决定如何去做。
使用:
悲观锁通常依靠数据库提供的锁机制实现,比如 mysql 的排他锁,select … for update 来实现悲观锁。 乐观锁不依靠数据库提供的锁机制,需要我们自已实现,实现方式一般是记录数 据版本,一种是通过版本号,一种是通过时间戳。