
笔记
文章平均质量分 85
CodeMavs
目前就职于vivo互联网
展开
-
MySQL知识体系(附大图-持续更新)
一、前言原创 2021-10-31 22:19:08 · 172 阅读 · 0 评论 -
MySQL事务实现原理
一、前言原创 2021-10-10 19:40:07 · 2302 阅读 · 0 评论 -
MySQL MVCC原理深入探索
一、前言原创 2021-10-05 18:55:31 · 1760 阅读 · 2 评论 -
MySQL锁机制全面解析
一、锁的作用 数据库使用锁是为了支持对共享资源的并发访问,同时保证数据的完整性和一致性。二、锁的类型2.1 全局锁全局锁意味着对整个数据库实例加上锁。通常使用的是全局读锁——Flush tables with read lock (FTWRL)。使用这个命令,可以使整个库处于只读状态,其他线程的无论使用DML、DDL甚至是事务的提交语句都会无法正常执行。使用场景做全库逻辑备份,对所有的表数据进行锁定,保证数据的一致性。问题但是FTWRL的全局锁方案有比较严重的缺原创 2021-10-01 13:15:15 · 3749 阅读 · 5 评论 -
深入解析AQS源码设计
一、ReentrantLock的作用原创 2021-09-18 23:31:23 · 1285 阅读 · 0 评论 -
一文轻松看透AQS的核心设计思想
一、AQS是什么AQS的完整类名是——AbstractQueuedSynchronizer(直译过来就是抽象队列同步器)。从字面上就能看出来,是专门用于实现同步功能的一个抽象框架。事实上,AQS是著名的JDK并发包设计者Doug Lea定义的一套用于控制多线程并发访问共享资源的基础框架,许多并发包工具实现都依赖于它,如常用的ReentrantLock、ReadWriteLock、Semaphore、CountDownLatch和ThreadPoolExecutor 的 Worker。二、为什么要使用AQ原创 2021-09-04 21:38:25 · 2655 阅读 · 0 评论 -
并发底层原理之CPU缓存伪共享
一、什么是CPU缓存由于CPU 运算速度要比内存读写速度快上百倍,使得CPU 需要花费很长时间等待数据读取来以及写入。而高速缓存的主要是为了解决 CPU 运算速度与内存读写速度不匹配的矛盾。在内存金字塔层次结构中,CPU高速缓存位于第二层,仅次于CPU的寄存器。 可以比对一下数据从不同存储到CPU大约传输时间:主存 约60-80nsL3 cache 约40-45时钟周期 约15nsL2 cache 约10时钟周期 约3nsL1 cache 约3-4时钟周期 约1ns寄存器 约1时钟原创 2021-08-25 00:35:26 · 1042 阅读 · 0 评论 -
Java多线程并发编程知识体系(附大图-持续更新)
Java并发编程并发编程的优势提升CPU资源利用率CPU缓存操作系统分时复用指令流水线优化提升吞吐量提升程序响应速度更好的编程模型并发带来的问题安全性问题定义:多线程读写共享变量时出现不正确的行为原因原子性问题CPU时钟中断带来的线程切换可见性问题多核CPU高速缓存之间不可见重排序问题CPU和编译器会进行重排序指令典型问题:单例模式DCL解决方案解决可见性问题和重排序Java内存模型(JMM)按需.原创 2021-08-22 11:40:42 · 3039 阅读 · 6 评论