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

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

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

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

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

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

转载于:https://www.cnblogs.com/zhiyong-ITNote/p/9551771.html

并发相关随笔(持续更新)相关推荐

  1. TC数据库相关整理(持续更新)

    TC数据库相关整理 1.常用的查找表的方法 2.用到过的表 3.使用过的语句 1.分类相关 2.创建视图 3.创建package 4.BOM相关 4.写在后面 1.常用的查找表的方法 在bmide中, ...

  2. 浏览器相关(持续更新)

    秋招后的一些记录,看了很多东西想写下来,希望自己可以随时的查看,也希望有错误的地方大神可以指正. 1.浏览器的主要组成部分 用户界面.浏览器引擎.呈现引擎.网络.用户界面后端.JavaScript解释 ...

  3. 【QA单】柿饼派及柿饼M3模块相关QA(持续更新....)

    PersimmonUI是以C++编写的,是RT-Thread上一款现代化图形UI库. Q:现在的新版柿饼派和旧版的有什么区别,可以在之前旧版上使用 SDK 开发么? A: 之前旧版的需要与淘宝客服联系 ...

  4. 2022年顶会、顶刊SNN相关论文----------持续更新中

    原文链接:https://blog.csdn.net/qq_43622216/article/details/124163883 2022年顶会.顶刊SNN相关论文 目录 说明 AAAI2022(共7 ...

  5. Ubuntu下docker相关问题 - 持续更新中

    permission denied 相关错误 问题描述 执行 docker 相关命令,会出现如下类似问题.sudo docker 则没有相关警告提示 WARNING: Error loading co ...

  6. pytorch下Numpy,Torch,Spicy,NetworkX及其他基本数据类型相关操作(持续更新)

    Tricks 1. torch.sparse.FloatTensor(position, value) 稀疏张量表示为一对稠密张量:一个值张量和一个二维指标张量(每一维中存储多个值).一个稀疏张量可以 ...

  7. Nginx 相关问题(持续更新一:Cookie问题)

    业务场景一(前端设置cookie后,后端获取不到) 业务介绍:两个单机系统A.B,A系统为主系统,B系统为子系统,启动A系统点击链接跳转至B系统,A.B系统均独立部署,统一由Nginx进行反向代理(由 ...

  8. 视网膜脱落相关知识(持续更新中)

    视网膜脱落的类型 [1]中主要分为两大类: 1.孔源性视网膜脱离 大多数视网膜脱离是这一类型的.由于各种内.外界原因导致视网膜产生了裂孔,引起的视网膜脱离.内因是指视网膜本身的原因,比如:高度近视视网 ...

  9. X86Windows 相关链接....持续更新中....

    链接说明 链接 备注 qboot是一个小型快速的Bios https://github.com/bonzini/qboot SeaBois是Bochs使用的Bois http://www.seabio ...

  10. Odoo相关资源(持续更新中)

    http://odoo-documention-user.readthedocs.io/crm/leads/voip/setup.html 官方"安装 Asterrisk 服务器" ...

最新文章

  1. Spring Cloud Alibaba到底坑不坑?
  2. ActionRequestValidationException[Validation Failed: 1: script or doc is missing
  3. 常见Java面试题之和的区别?
  4. linux一些杂项整理
  5. 157. [USACO Nov07] 奶牛跨栏
  6. 2018 年,JavaScript 都经历了什么?
  7. LeetCode 11盛水最多的容器
  8. 文献阅读:《Generative Adversarial Active Learning for Unsupervised Outlier Detection》-2020 trans
  9. Atitit 跨语言跨平台ui界面 与界面分类 目录 1. 按照业务分类 1 1.1. 媒体类新闻类展示界面 1 1.2. 表单提交类 2 1.3. 查询类列表类(纯文列表,图文列表等 2 1.4.
  10. 光立方程序详解_C ++程序使用宏查找数字的立方
  11. 如何获取ppt内的视频文件
  12. Win10快捷键大全快速开发切换操作之道
  13. Apache解析漏洞
  14. canva画图 图片居中裁剪_html5 canvas 自定义画图裁剪图片
  15. 【Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/hml/Library/LaunchAgents/homebre】
  16. (已解决)windows2020卸载office2013(安装程序包语言不受系统支持)
  17. PopupWindow
  18. Rosalind Java|Consensus and Profile
  19. MO3音频文件格式可以用XMplay打开并转换格式
  20. html表格怎么用css渲染,css样式如何渲染?

热门文章

  1. mysql基于时间盲注_MySQL基于时间盲注(Time-Based Blind SQL Injection)五种延时方法...
  2. 常用的linux命令-vim
  3. swift基础知识一
  4. nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
  5. 工作上碰到的技术问题积累
  6. SQL Server 中的例程分析
  7. 微软发布TypeScript用以改进JavaScript开发
  8. Linux 文件,目录的属性
  9. python中tqdm的用法
  10. 虚函数中调用父类同名虚函数