zoukankan      html  css  js  c++  java
  • 并发相关随笔(持续更新)

    并发控制策略:
    乐观并发控制与悲观并发控制。
    乐观并发:通过冲突监测和事务回滚来防止并发业务事务中的冲突
    悲观并发:每次只允许一个业务事务访问数据以防止并发业务事务中的冲突

    读写锁:
    读写锁是互斥的(得到了读锁就不能再获取写锁)。读写锁可以用来解决不一致读问题,悲观锁策略可以通过读加锁和写加锁来处理这个问题。读数据时需要一个读锁(或者叫共享锁);写数据时需要一个写锁(或者叫排它锁)。对于读锁,可以一次多个人对同一份数据加锁,但是一旦有人得到了读锁,其余人就不无法再得到写锁;而想要获取写锁就必须释放共享锁。乐观锁测试:所有读取的数据都需要跟共享数据进行版本标记比较,更新提交时需要核对更新数据的版本标记以及共享数据(读取的数据)的版本标记,任何不同都意味着冲突的发生。

    svn提交时,有时会遇到冲突,随后会让你选择解决冲突的方案:本地还是版本库。其实就是应用了乐观锁。最明显的标志就是,每当你提交了一次svn后,都会返回一个版本号,此版本号就是用来验证冲突是否发生的。

    关系数据库中的crud sql原语中充斥着对两种并发的应用,同样也存在于数据库引擎中。

    编程语言级别的读写锁(C#),参考官网的 readerwriterlockslim 类 

    redis下的事务控制是并发控制策略中的 乐观并发,并没有真正的锁

  • 相关阅读:
    rocketMQ配置事故
    微信网页授权问题记录
    记一次Spring配置事故
    文件转换
    Java对象空间分配流程
    mysql(六)索引的数据结构
    mysql(五)查询缓存
    mysql(四)log
    从项目中加载文件
    cookie
  • 原文地址:https://www.cnblogs.com/zhiyong-ITNote/p/9551771.html
Copyright © 2011-2022 走看看