2025年关于程序中锁的认知

关于程序中锁的认知一 锁的分类 1 运行程序层面的锁 2 数据库层面的锁 二 各种锁的含义 1 数据库层面的锁是默认的 无法修改的 数据库层面的锁叫做悲观锁 总是认为别人会去修改他 数据库层面的锁共有三种 共享锁 排他锁 更新锁 1 共享锁 只读数据时 例 select 此时数据库会默认给该数据加上共享锁 此时别的程序无法修改该条数据了 别的程序可以加入该共享锁来读取该加共享锁的数据 2 排他锁

大家好,我是讯享网,很高兴认识大家。

一、锁的分类
1.运行程序层面的锁
2.数据库层面的锁
二、各种锁的含义
1.数据库层面的锁是默认的,无法修改的,数据库层面的锁叫做悲观锁(总是认为别人会去修改他)数据库层面的锁共有三种:共享锁、排他锁、更新锁
(1)共享锁:只读数据时(例:select),此时数据库会默认给该数据加上共享锁,此时别的程序无法修改该条数据了,别的程序可以加入该共享锁来读取该加共享锁的数据
(2)排他锁:假如你要修改某条数据时(例:update、delete),此时数据库会默认该条数据加上排他锁,该种情况下,别的程序不能读和修改该条数据,只有给该数据加排它锁的程序修改完成把锁去掉后,别的程序才可以操作该条数据
(3)更新锁:该锁是介于共享锁和排它锁之间的锁,避免俩人同时申请排他锁,产生死锁的现象
2.程序层面的锁:程序层面的锁是乐观锁(认为自己在修改该条数据时,别的程序不会去修改他)
(1)关于程序层面的乐观锁,一般有俩种方法解决该问题:一是在数据库中加上version字段,当要修改某条数据时会先把该条数据的version版本号记下来,然后程序去执行相关读写操作,操作成功后准备提交时,再去读取version字段的值是否之前的一直,如果一直执行提交,并在该本版号version字段的值上加1;二是在该条数据上加上lock(该字段的值默认为false)字段,有程序开始修改该条数据时&#x


讯享网

小讯
上一篇 2025-01-29 14:22
下一篇 2025-02-17 22:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/64122.html