共享锁与排它锁

简介: 共享锁与排它锁

在多用户共享的系统中,多用户对同一数据进行操作可能会带来数据不一致的情况,因此在并发操作中需要加锁操作,以此控制事务的并发执行。

共享锁:从名字可以看出,该锁可共享,写操作肯定不可共享,一共享数据就被写乱了,便没有“锁”可言了,所以共享锁为读操作“共享”,即本锁加上之后不可再进行写操作,但是可以读,也可称为只读锁。

排它锁:排它锁就比较霸道了,只要我加上这个锁,其他操作均不可进行,为啥呢?因为我要对该数据进行修改了,既然我要修改必然不能让别人再来修改,也必然不能加只读锁,因为加上只读锁,我就无法进行写操作了。

以上分析可得:一个数据被加上共享锁之后可再次加共享锁,但不可再加排它锁


相关文章
|
7月前
|
存储 供应链 监控
供应链复杂、工厂分散,半导体行业如何安全访问总部ERP系统?
电子元器件与半导体行业面临供应链复杂、生产计划多变等挑战,智能化ERP系统成为提升效率的关键。然而,数据安全至关重要,许多企业选择本地部署并结合内网穿透技术实现远程访问。以神州讯盟ERP为例,搭配贝锐花生壳,无需公网IP即可安全接入总部系统。花生壳采用多重加密与权限控制,保障数据传输安全,同时支持高速跨地区访问,仅需三步即可完成配置,满足多地协同办公需求,助力企业高效管理。
192 0
|
机器学习/深度学习 C语言
自己建立结构体类型
自己建立结构体类型
99 0
uniapp使用路由名称跳转
【9月更文挑战第11天】在UniApp中,可通过定义路由名称实现页面跳转,需在`pages.json`中设置页面的`name`属性。使用`uni.navigateTo`等API并指定名称即可跳转,例如`name: 'detailPage'`。目标页面可在`onLoad`函数中获取传递的参数,这种方式使代码更清晰且便于维护,尤其适合大型项目。
400 1
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
320 7
|
前端开发 JavaScript
前端 JS 经典:数字变化动画
前端 JS 经典:数字变化动画
316 0
|
开发框架 监控 .NET
【Azure 应用程序见解】在Docker中运行的ASP.NET Core应用如何开启Application Insights的Profiler Trace呢?
【Azure 应用程序见解】在Docker中运行的ASP.NET Core应用如何开启Application Insights的Profiler Trace呢?
107 0
|
JavaScript
vue老项目sass和element-ui开发踩坑
公司的一个各种依赖比较老的项目,习惯了之前的iview和stylus开发,刚接手还是有很多不习惯的地方
|
SQL 关系型数据库 MySQL
服务器意外断电MySQL无法启动
服务器意外断电MySQL无法启动
|
Ubuntu Java Maven
Ubuntu配置maven环境变量
Ubuntu配置maven环境变量
455 0