首页 > 其他分享 >7并发控制

7并发控制

时间:2023-09-04 16:56:35浏览次数:47  
标签:封锁 协议 事务 控制 修改 并发 丢失

事务的ACID特性

事务

A原子性:操作要么全部成功,要么全部失败回滚

C一致性:一个一致性状态变换到另一个一致性状态:扣500,另一个得500

I隔离性:独立性

D持久性:改变是永久性的

 

并发产生的问题:

丢失更新(中途写回,丢失了一个修改被覆盖)     不可重复读问题(第二次读的数据不一样,被中途修改)    脏  数据的读出(某个事务撤销的数据,扔被另一事务使用)

并发产生的问题的解决方案

问题:丢失更新,不可重复读的问题,脏数据的读出

方案:封锁协议

封锁协议:------》死锁 预防和手动解除

S封锁  读锁/共享

 X封锁   写/独占 /排他

一级封锁协议:修改数据前加x锁,可防止丢失修改(事务结束后才释放)

二级封锁协议:一级封锁协议基础上在读数据之前加S锁,可防止丢失修改,可防止读脏数据(读完就释放S锁)

三级封锁协议:一级封锁协议加上事务在读取数据之前先加S锁,直到事务结束才释放

两端协议。可串行化,可能发生死锁

标签:封锁,协议,事务,控制,修改,并发,丢失
From: https://www.cnblogs.com/wumingliang/p/17677520.html

相关文章

  • JAVA-基本程序设计结构(控制流程、数组)
    1.控制流程1.块作用域1.块(即复合语句)由若干条Java语句组成,并用一对大括号括起来。2.块确定了变量的作用域。3.一个块可以嵌套在另一个块中。但是不能在嵌套的两个块中声明同名的变量。2.顺序控制顺序控制:程序从上到下逐行地进行,中间没有任何判断和跳转Java中定义成员变量时......
  • 如何通过C++开发高效的机器人控制程序
    如何通过C++开发高效的机器人控制程序导语:随着人工智能和机器人技术的不断发展,机器人控制程序的开发变得越来越重要。本文将介绍如何使用C++语言开发高效的机器人控制程序,并提供一些代码示例。一、了解机器人的控制原理在开始开发机器人控制程序之前,首先需要了解机器人的控制原......
  • SQL备忘-基本控制语句复习及@@ROWCOUNT陷阱纪实
    作者fbysss关键字:SQL语句      好久不写复杂的sql语句,以至于很多东西都忘记。以至于写出@name="sss"来(应该使用单引号)还是写日志好,一些小的知识点很快可以查到,所以有机会就赶紧贴上来,顺便给需要的人参考。下面这段很简单,但是很容易陷入@@rowcount的“想当然”陷阱。declare......
  • cmd控制台中文乱码
    切换活动页编码cmd控制台中执行:chcp65001C++代码中执行system("chcp65001");注:CHCP是一个计算机指令,能够显示或设置活动代码页编号。代码页 描述65001 UTF-8代码页950繁体中文936简体中文默认的GBK437MS-DOS美国英语......
  • Android并发编程高级面试题汇总(含详细解析 十六)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • Android并发编程高级面试题汇总(含详细解析 十八)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • EF Core并发控制
    EFCore并发控制并发控制概念并发控制:避免多个用户同时操作资源造成的并发冲突问题。最好的解决方案:非数据库解决方案数据库层面的两种策略:悲观、乐观悲观锁悲观并发控制一般采用行锁,表锁等排他锁对资源进行锁定,确保同时只有一个使用者操作被锁定的资源。EFCore没有封......
  • STM32深入学习3:GPIO模块控制LED(寄存器版)
    GPIO模块数据手册详解:GPIO:通用输入/输出AFIO:备用输入/输出GPIOx_CRL和GPIOx_CRH:配置寄存器GPIOx_IDR和GPIOx_ODR:数据寄存器GPIOx_BSRR:置位/复位寄存器GPIOx_BRR:复位寄存器GPIOx_LCKR:锁定寄存器,锁定GPIO的数值GPIO模式:1.输入浮动:完全由外部决定2.输入上拉和输入下拉:存在......
  • 大数据开发-从Scala到Akka并发编程_jDW32G3c87fjEBtYNE7Z7f
    大数据开发-从Scala到Akka并发编程大数据开发-从Scala到Akka并发编程[4-1Scala作业.pdf](file/4-1Scala作业_UVqqJLwoIp.pdf)1.递归实现瓶盖,瓶子换酒瓶的算法1.1需求描述每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒。100元最多可喝多少瓶啤酒?(不允许借啤酒)思路:利用递归算......
  • 大数据开发-从Scala到Akka并发编程_jDW32G3c87fjEBtYNE7Z7f
    大数据开发-从Scala到Akka并发编程大数据开发-从Scala到Akka并发编程[4-1Scala作业.pdf](file/4-1Scala作业_UVqqJLwoIp.pdf)1.递归实现瓶盖,瓶子换酒瓶的算法1.1需求描述每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒。100元最多可喝多少瓶啤酒?(不允许借啤酒)思路:利用递归算......