程序员过关斩将——数据库的乐观锁和悲观锁并非真实的锁( 三 )

菜菜:哦 , 看来公司是真的不想让你走呀

YY妹:面试官让我说一下乐观锁和悲观锁 , 我没回答上来 , 回来之后我查了 , 数据库没有这两种锁呀

菜菜:了解这两种锁之前 , 我觉得你需要先了解一下数据库的锁机制

开局

我们平时编写程序的时候 , 有很多情况下需要考虑线程安全问题 , 一个全局的变量如果有可能会被多个同时执行的线程去修改 , 那么对于这个变量的修改就需要有一种机制去保证值的正确性和一致性 , 这种机制普遍的做法就是加锁 。 其实也很好理解 , 和现实中一样 , 多个人同时修改一个东西 , 必须有一种机制来把多个人进行排队 。 计算机的世界中也是如此 , 多个线程乃至多个进程同时修改一个变量 , 必须要对这些线程或者进程进行排队 。 数据库的世界亦是如此 , 多个请求同时修改同一条数据记录 , 数据库必须需要一种机制去把多个请求来顺序化 , 或者理解为同一条数据记录同一时间只能被一个请求修改 。

推荐阅读