文档章节

互斥锁(排它锁、独占锁、写锁、X锁)和共享锁(读锁、S锁) 自旋锁

问题达人
 问题达人
发布于 2017/05/24 13:03
字数 454
阅读 442
收藏 0

共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁,直到已释放所有共享锁。获准共享锁的事务只能读数据,不能修改数据。 排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的锁,直到在事务的末尾将资源上的锁释放为止。获准排他锁的事务既能读数据,又能修改数据。

自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。

  • 自旋锁:自旋,jvm默认是10次吧,有jvm自己控制。for去争取锁
  • 自旋锁的其他种类
  • 阻塞锁:被阻塞的线程,不会争夺锁。
  • 可重入锁: 多次进入改锁的域
  • 读写锁
  • 互斥锁:锁本身就是互斥的
  • 悲观锁:不相信,这里会是安全的,必须全部上锁
  • 乐观锁:相信,这里是安全的。
  • 公平锁:有优先级的锁
  • 非公平锁:无优先级的锁
  • 偏向锁:无竞争不锁,有竞争挂起,转为轻量锁
  • 对象锁:锁住对象
  • 线程锁
  • 锁粗化:多锁变成一个,自己处理
  • 轻量级锁:CAS 实现
  • 锁消除:偏向锁就是锁消除的一种
  • 锁膨胀:jvm实现,锁粗化
  • 信号量:使用阻塞锁 实现的一种策略

© 著作权归作者所有

问题达人
粉丝 13
博文 94
码字总数 87078
作品 0
昌平
程序员
私信 提问

暂无文章

任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击!

任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击! 如果你是华为的老板,看到一条传遍网络的“美国封锁华为”、“华为禁令”的消息,你会怎么办? 昨天上午,华为创始...

forespider
53分钟前
2
0
Java HTTP 组件库选型看这篇就够了

最近项目需要使用 Java 重度调用 HTTP API 接口,于是想着封装一个团队公用的 HTTP client lib. 这个库需要支持以下特性: 连接池管理,包括连接创建和超时、空闲连接数控制、每个 host 的连...

Java面经
54分钟前
4
0
nginx 重启

在 nginx.config 配置目录下 输入命令: nginx -s reload 在 nginx 中,如果我修改了一个配置文件,或者新增了一个配置文件。按照群里网友的描述,我需要关闭 nginx,或者重启 nginx,比较麻...

MrBoyce
55分钟前
0
0
Cesium中级5 - Terrain 地形

Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ CesiumJS支持对与水流相关的海洋、湖泊和河流以及全球高分辨率地形进行流式处理和可视化。查看山峰、山谷...

Cesium中文网
今天
0
0
搭建jupyter+nginx服务

Tips:该文章面向Mac和centos用户,如果是Windows用户,请先安装虚拟机。 概述 Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter ...

阿dai学长
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部