mysql之innodb自增锁原理实现

mysql之innodb自增锁原理实现 1 自增锁知识点 1.1 定义 自增锁是一种表级锁(table-level lock),专门针对插入 AUTO_INCREMENT 类型的列。同一表,假设事务 A 正在插入数据,则另一个事务 B 尝试 INSERT 语句,事务 B 会被阻塞住,直到事务 A 释放自增锁,以便事务A插入的行是连续的主键 ID

mysql快照读原理实现

Innodb之快照读原理实现 1 Innodb MVCC组成 1. 1 为何使用MVCC实现快照读 innodb存储引擎的快照读是基于多版本并发控制 MVCC 和 undolog 实现,通过 MVCC 机制提高系统读写并发性能,快照读只发生于 select 操作,但不包括 select … lock in share mode, select … for update  提高并发的思路 并发数据一致性通常实现: 锁 + 多数据版本

ClassLoader类加载分析(二)

一、JVM 提供的 Classloader 1.1 BootstrapClassloader 引导类加载器,又称启动类加载器,是最顶层的类加载器,主要用来加载Java核心类,如rt.jar、resources.jar、charsets.jar等,Sun的JVM中,执行java的命令中使用-Xbootclasspath选项或使用- D选项指定sun.boot.class.path系统属性值可以指定附加的类,它不是 java.lang.ClassLoader的子类,而是由JVM自身实现的该类c 语言实现,Java程序访问不到该加载器。通过下面代码可以查看该加载器加载了哪些jar包 public class MainClass { public static void main(String[] args) throws ClassNotFoundException { URL[] urls = sun.

ClassLoader类加载分析(一)

一、什么是Classloader 一个Java程序要想运行起来,首先需要经过编译生成 .class文件,然后创建一个运行环境(jvm)来加载字节码文件到内存运行,而.class 文件是怎样被加载中jvm 中的就是Java Classloader所做的事情。 那么.class文件什么时候会被类加载器加载到jvm中运行那?比如执行new操作时候,当我们使用Class.forName(“包路径+类名”),Class.forName(“包路径+类名”,classloader),classloader.loadclass(“包路径+类名”);时候就触发了类加载器去类加载对应的路径去查找*.class,并创建Class对象。 类的加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括: 1、装载 2-4、链接 -包括 【验证、准备、解析】 5、初始化