美文网首页
1.读写锁

1.读写锁

作者: 资深菜鸡程序员 | 来源:发表于2021-06-01 17:20 被阅读0次

一.表读锁

给表加读锁同一个session可以读加锁表,但不能读其他表,也不可以写加锁表和其他表。

                  不同锁session可以读取加锁表和其他表,写其他表可以成功但是写加锁表会阻塞,等待锁释放才可以操作

1、session1: lock table mylock read; -- 给mylock表加读锁

2、session1: select * from mylock; -- 可以查询

3、session1:select * from tdep; --不能访问非锁定表

4、session2   :select * from mylock; -- 可以查询 没有锁

5、session2:update mylock set name='x' where id=2; -- 修改阻塞,自动加行写锁

6、session1:unlock tables; -- 释放表锁

7、session2:Rows matched: 1 Changed: 1 Warnings: 0 -- 修改执行完成

8、session1:select * from tdep; --可以访问

二.表写锁

给表加写锁同一个session可以读加锁表的数据,不能读其他表,可以写加锁表但不能写其他表。

                  不同session读加锁表会阻塞,可以读其他表,写加锁表会阻塞,可以写其他表。

1、session1: lock table mylock write; -- 给mylock表加写锁

2、session1: select * from mylock; -- 可以查询

3、session1:select * from tdep; --不能访问非锁定表

4、session1:update mylock set name='y' where id=2; --可以执行

5、session2:select * from mylock; -- 查询阻塞

6、session1:unlock tables; -- 释放表锁

7、session2:4 rows in set (22.57 sec) -- 查询执行完成

8、session1:select * from tdep; --可以访问

相关文章

  • 1.读写锁

    一.表读锁 给表加读锁同一个session可以读加锁表,但不能读其他表,也不可以写加锁表和其他表。 不同锁ses...

  • 2021-07-28 JUC 锁

    1. 读写锁 ReentrantReadWriteLock 的用法 读写锁对象生成之后,内部会存在两个锁,读锁和写...

  • iOS中的锁(5)

    iOS中的锁(5) 本文主要介绍pthread和读写锁,以及自定义一个简单的读写锁。 1. pthread 1.1...

  • golang rwmutex的实现原理

    1. 前言 前面我们聊了互斥锁Mutex,所谓读写锁RWMutex,完整的表述应该是读写互斥锁,可以说是Mutex...

  • 读写锁和互斥锁 读写互斥锁,简称读写锁 mux sync.RWMutex Lock和Unlock分别对写锁进行锁定...

  • 线程同步(下)

    继上篇。这篇介绍的几种使用的较少。 读写锁 读写锁与互斥锁类似。不过读写锁允许更高的并行性。读写锁可以有三种状态:...

  • 信号量控制并发

    信号量不仅可以当成读写锁来使用, 也可以控制线程的最大并发数. 1. 读写锁 多个线程读写数据, 有可能造成数据不...

  • 可重入读写锁 ReentrantReadWriteLock

    读写锁分为读锁和写锁,多个线程获取读锁不互斥,读写锁、写写锁互斥。 输出

  • Java并发编程-读写锁(ReentrantReadWriteL

    章节目录 ReentrantReadWriteLock 特性 读写锁接口示例 读写锁的实现分析读写状态设计写锁的释...

  • 线程安全之读写锁

    相关API 初始化读写锁 释放读写锁 获取读锁 获取写锁 解锁 实例

网友评论

      本文标题:1.读写锁

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