美文网首页
Hibernate之悲观锁【共享锁、排他锁】

Hibernate之悲观锁【共享锁、排他锁】

作者: 黑马_b717 | 来源:发表于2019-06-23 14:55 被阅读0次

    共享锁【写锁】少用

    共享锁的现象:注意,操作要快,不然会超时

    1、分别打开两个Mysql命令行 A和B


    image.png

    2、使用相同数据库
    3、A和B依次输入 start transaction;
    4、A和B查询相同表 select * from 表名 lock in share mode;
    5、A 输入更新语句, B 输入更新语句【总之会有一方卡住】


    image.png

    卡住的原因是一方拿到了共享锁,拿到共享锁的一方提交事务【commit】后另一方才可以执行;

    排他锁【写锁】常用锁行,不建议锁表

    1、分别打开两个Mysql命令行 A和B
    2、使用相同数据库
    3、A和B依次输入 start transaction;
    4、A输入select * from t_customer for update ;【锁表】后,发现界面输出;
    5、B输入select * from t_customer for update ;【锁表】后,界面无输出;


    image.png

    6、A提交事务【commit】后,B有输出


    image.png
    7、执行锁行操作A输入select * from t_customer where id=1 for update ;【锁表】后,发现界面输出;
    8、B执行select * from t_customer where id=2 for update ;有输出
    image.png
    9、B执行select * from t_customer where id=1 for update ;卡住
    image.png
    10、A提交事务【commit】后,B执行select * from t_customer where id=1 for update ;输出
    image.png

    Hibernate写锁【排他锁】实现

    现象:命令行开启线程,应用程序开启线程

    1、命令行就绪


    image.png

    2、执行应用程序


    image.png
    3、应用程序输出【卡住】
    image.png

    3、命令行提交事务【commit】


    image.png

    4、查看应用程序控制台


    image.png

    相关文章

      网友评论

          本文标题:Hibernate之悲观锁【共享锁、排他锁】

          本文链接:https://www.haomeiwen.com/subject/xqviqctx.html