此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

悲观锁与乐观锁

悲观锁与乐观锁都是数据库相关的锁

乐观锁
心理:这次操作应该不会有问题,我先完成计算,在插入前判断一下就好
由用户实现,而非数据库
1、操作数据库数据时不加锁(乐观锁其实不加锁。。)
2、更新计算结束后,再去判断是否冲突

通常实现:
1、操作前,获取数据表的版本号version
2、完成自己的计算,after a few moments...
3、插入前,判断数据表的version是否和存储的version相同(如果不同则表示在计算期间其他线程已更新了数据库),若相同,则插入,并且version+1
-----------------------


悲观锁
心理:这次操作极有可能引发冲突,使用每次操作得先获得锁
由数据库实现,类似于synchronized

posted @ 2019-07-29 11:13  炎泽  阅读(201)  评论(0编辑  收藏  举报