第1章 MySql架构 1.1 MySql逻辑架构 第一层:连接层,负责连接处理、授权认证、安全等。 第二层:Server层,提供MySql核心服务,查询解析、分析、优化、缓存、内置函数、存储过程、触发器、视图等跨存储引擎的功能。 第三层:存储引擎层。负责数据的存储和提取。 1.2 并发控制 服务器 ...
分类:
数据库 时间:
2020-09-17 21:40:41
阅读次数:
36
概述前面分析过ReentrantLock「JDK源码分析-ReentrantLock」,它是一种互斥的可重入锁,可用于处理并发场景下的线程安全问题。而很多时候会出现“读多写少”的情况,若用ReentrantLock会降低并发量,此时就比较适合ReentrantReadWriteLock出场了。ReentrantReadWriteLock是读写锁,它维护了一对锁:一个读锁,一个写锁。读锁之间是共享的
分类:
其他好文 时间:
2020-08-31 13:08:51
阅读次数:
36
面试官:有没有比读写锁更快的锁?StampedLock了解下
分类:
其他好文 时间:
2020-08-28 11:52:16
阅读次数:
38
ReadWriteLock: 一个用于只读操作,一个用于写入操作;读的时候可以由多个线程进行,写的时候只能有一个。 读-读:可以共存 读-写:不可共存 写-写:不可共存 读锁:共享锁 写锁:独享锁 代码示例 package pers.vincent.matrix.subject.readwrite; ...
分类:
其他好文 时间:
2020-08-07 12:32:20
阅读次数:
64
大多数应用程序在大部分时间都是在响应数据读取事件,而数据的读写并发可能会带来数据脏读(读线程在读取的数据,写线程已经修改但未提交)等问题,基于类似的可能会发生对同一个资源进行读写操作的场景,我们需要实现读写锁来保证数据准确,读写锁是指读线程之间不存在互斥,读写及写写之间存在互斥我们可以用一个表格来列 ...
分类:
其他好文 时间:
2020-07-20 13:14:18
阅读次数:
52
/*Linux环境编程:从应用到内核*/ /* 0.4.3 线程安全 线程安全,顾名思义是指代码可以在多线程环境下“安全”地执行。何为安全?即符合正确的逻辑结果,是程序员 期望的正常执行结果。为了实现线程安全,该代码要么只能使用局部变量或资源,要么就是利用锁等同步机制,来 实现全局变量或资源的串行访 ...
分类:
编程语言 时间:
2020-07-18 19:58:19
阅读次数:
78
读写锁实现逻辑相对比较复杂,但是却是一个经常使用到的功能,希望将我对ReentrantReadWriteLock的源码的理解记录下来,可以对大家有帮助 前提条件 在理解ReentrantReadWriteLock时需要具备一些基本的知识 理解AQS的实现原理 之前有写过一篇《深入浅出AQS源码解析》 ...
分类:
其他好文 时间:
2020-07-17 19:28:35
阅读次数:
49
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等这篇文章主要记录,造成查询数量不大的情况下,造成查询缓慢的原因,以及相应的解决方法。环境说明:MySQL版本5.7.27隔离级别:RR锁等待造成查询速度很慢MDL锁如开启如下事务:SessionA持有表tMDL写锁。SessionB需要MDL读锁。这时读写锁互斥,SessionB被阻塞。flush阻塞flush操作一般来说很快
分类:
其他好文 时间:
2020-07-16 12:14:03
阅读次数:
99
1、有助于 提高锁性能 的几点建议: 1.1、减少锁持有时间 只有在必要时进行同步,这样明显 减少锁持有时间、提升系统的吞吐量; public synchronized void say(){ //do one //并发逻辑 //do other } /** * 优化后 */ public void ...
分类:
编程语言 时间:
2020-07-12 17:15:16
阅读次数:
67
一 前言 本篇是关于mysql架构层面的内容,之前的知识追寻者发布的文章都是基础系列文章,如果读者们学习到这边就算是步入MYSQL的高阶内容了,你将理解什么MYSQL的架构与引擎,读写锁,等进阶知识,为以后的MYSQL参数配置,引擎选择,语句优化打下坚实的基础;学习本篇的内容是知识追寻者发布过的基础 ...
分类:
数据库 时间:
2020-07-05 23:22:26
阅读次数:
79