文档章节

凯哥学堂
 凯哥学堂
发布于 2017/08/29 15:37
字数 385
阅读 6
收藏 0
点赞 0
评论 0

数据库自动带锁,insert,update,delete(排他锁) 注意,这个表格的引擎需要为Innodb的 在mysql中做事物的实验,记住要设置为手动式提交事物 Set autocommit=0;

image

排他锁,在select语句最后就加上for update Select * from student where uid=1 for update 共享锁,在语句最后加上lock in share mode Select * from user where uid=1 lock in share mode

共享锁可以向一条记录加入多个共享锁,但是要转成排他锁的话,需要等待其他的共享锁松开,后面继续续又其他事物排他锁加入,mysql会自动拒绝

实验操作

两个访问分别都设置为了手动事物,一个事物操作插入数据,然后另一个查询,会发现插入的数据没有出现在数据库中。

image

当我们提交后,添加的数据才显示在数据库中。

image

当我们回滚后,前面添加的SQL语句则无效

image

人为加排他锁,别人只能查询数据而不能修改数据,如果加锁对象还未提交或回滚,修改数据将会超时。

image

只有等加锁对象提交或者回滚,别的对象才能对数据进行修改;

image

但是因为我们给select添加的是行级排他锁,所以别人不可以修改我们所添加锁的行,但是没有加锁的行,别人是可以修改的。

image

死锁的样式

image

利用事物和锁,做一个购票系统

image

image

image

image

© 著作权归作者所有

共有 人打赏支持
凯哥学堂
粉丝 10
博文 286
码字总数 256719
作品 0
东城
程序员
MySQL数据库的锁机制

在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。 锁分类 ①、按操...

Javahih ⋅ 01/02 ⋅ 0

《硬道理》系列~第一回 程序中的“锁”

共享锁  由非更新(读取)操作创建的锁。其他用户可以并发读取数据,但任何事务都不能获取数据上的排它锁,直到已释放所有共享锁。 共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事...

mcy247 ⋅ 2017/12/04 ⋅ 0

MySQL_S锁_X锁_read lock_write lock

MySQLS锁X锁read lockwrite lock 共享锁和排它锁 MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock) 读锁是共享的,或者说是相互不阻...

秋风醉了 ⋅ 2014/04/02 ⋅ 0

java锁的分类大全

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章来汇总下各种锁的分类。 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁...

激情的狼王丶21 ⋅ 2017/12/21 ⋅ 0

MySQL中的共享锁与排他锁

在MySQL中的行级锁,表级锁,页级锁中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突。行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁及排他锁的概念、...

steven ⋅ 2016/09/23 ⋅ 0

mysql共享锁与排他锁

MySQL锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一...

布拉君君 ⋅ 2017/09/01 ⋅ 0

【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock

此篇博客所有源码均来自JDK 1.8 重入锁ReentrantLock是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而读...

chenssy ⋅ 2017/03/29 ⋅ 0

Java高级上锁机制:显式锁 ReentrantLock

Java 5.0 加入了新的上锁工作:ReentrantLock,它和同步(Synchronized)方法的内置锁不同,这是一种显式锁。显式锁作为一种高级的上锁工作, 是同步方法的一种补充和扩展,用来实现同步代码块...

登高且赋 ⋅ 2017/11/17 ⋅ 0

Oracle的TX锁(行级锁、事务锁)

问题:如何使用事务? 回答:一共有三步。 1、先开启事务。 •在Oracle中,事务是在上一次事务结束以后,数据“第一次”被修改时自动开启。 •在java中,设置连接为手动提交模式开始。代码:...

swearyd457 ⋅ 2013/10/10 ⋅ 0

浅谈Java并发编程系列(七) —— 深入解析synchronized关键字

Synchronized关键字 synchronized的锁机制的主要优势是Java语言内置的锁机制,因此,JVM可以自由的优化而不影响已存在的代码。 任何对象都拥有对象头这一数据结构来支持锁,但是对于较大的对...

codershamo ⋅ 2017/11/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Day 17 vim简介与一般模式介绍

vim简介 vi和Vim的最大区别就是编辑一个文件时vi不会显示颜色,而Vim会显示颜色。显示颜色更便于用户编辑,凄然功能没有太大的区别 使用 yum install -y vim-enhanced 安装 vim的三种常用模式...

杉下 ⋅ 57分钟前 ⋅ 0

【每天一个JQuery特效】根据可见状态确定是否显示或隐藏元素(3)

效果图示: 主要代码: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>根据可见状态确定 是否显示或隐藏元素</title><script src="js/jquery-3.3.1.min.js" ty......

Rhymo-Wu ⋅ 今天 ⋅ 0

OSChina 周四乱弹 —— 初中我身体就已经垮了,不知道为什么

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @加油东溪少年 :下完这场雨 后弦 《下完这场雨》- 后弦 手机党少年们想听歌,请使劲儿戳(这里) @马丁的代码 :买了日本 日本果然赢了 翻了...

小小编辑 ⋅ 今天 ⋅ 12

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部