Welcome to my blog
计算机基础-原码、反码、补码
原码、补码和反码 原码、补码和反码是计算机中表示数字的几种方式,他们是为了达成不同的目的而被创建的。 我们根据数字的大小通常会使用不同的位数(8...
MySQL Insert加锁分析
Insert语句加锁分析 这里来单独分析一下 Insert 语句的加锁情况。 前面提到了5种行锁 - 普通行锁 :lock_mode X/S locks rec but not gap - 间隙锁 :lock_...
MySQL的事务、日志、锁和MVCC
MySQL的存储引擎 MySQL有多种可选的存储引擎,常见的有 InnoDB MyISAM Memory 其中InnoDB是最常用的存储引擎,并且也是目前MySQL的默认存储引擎。...
Java同步机制(六)- AQS
终于来到了重头戏-AQS,AQS可以说是整个J.U.C的核心,整个工具包中的大部分同步工具都是借助于AQS来实现的。接下来我们将通过Reen...
Java同步机制(五)-Lock接口
Lock接口 Lock接口是J.U.C中的一个接口,为我们提供和Synchronized相似的并发控制功能,但是使用起来比Synchronized更加灵活。 下面我们通过接口中定义的方法来分析一下 ...
Java同步机制(四)-LockSupport
LockSupport LockSupport是Java中实现同步的一个重要方式,LockSupport提供了阻塞线程和唤醒线程的功能。 LockSupport中的...
Java同步机制(三)-JMM
#JMM 什么是Memory Model 想要了解JMM,我们先来了解一下什么是内存模型,下面是JMM规范中对内存模型的描述。 A high level, informal overview of the memory model shows it to be a set of rules...
Java同步机制(二)-Volatile
volatile在Java中的语义 对于volatile我们都比较熟悉,volatile在Java中有两种作用 保障字段在多线程之间的可见性 防止...
Java同步机制(一)-Synchronized
Java对象头 锁升级和对象头关系很密切,所以我先了解一下对象头。 我们先来看一下64位系统下对象头的结构,对象头结构分为两部分Mark Word...
Redis为何使用单线程
Redis的线程 从接触到Redis开始,就了解到Redis的一个重要特性就是单线程。 带着这个特性,我通过命令top -H -p 2582查看了Redi...