CSAPP笔记之存储器层次结构

下面内容是对《深入理解计算机系统》和内存与缓存文章的一个学习笔记

Read More

Bagikan Komentar

基于Redis的分布式锁实现

前言

本篇文章主要介绍基于Redis的分布式锁实现到底是怎么一回事,其中参考了许多大佬写的文章,算是对分布式锁做一个总结

Read More

Bagikan Komentar

浅析 Synchronized的底层实现及锁升级

前言

本文主要从Synchronzied的以下两个方面进行浅析:

  • Synchronized的底层实现(对于同步代码块与同步方法)
  • Synchronized的锁升级

Read More

Bagikan Komentar

浅析 ReentrantLock

前言

下面将从以下几个方面浅析ReentrantLock:

  • ReetrantLock可重入锁简介
  • ReetrantLock的特性
    • 中断响应
    • 锁申请等待限时
  • ReentrantLock中的公平锁与非公平锁
  • ReetrantLock的内部实现

Read More

Bagikan Komentar

浅析MySQL InnoDB的隔离级别

前言

还是老规矩,首先提出几个待解决的问题:

  • MySQL InnoDB存储引擎中事务的隔离级别有哪些?
  • 对应隔离级别的实现机制是什么?

本文就将对上面这两个问题进行解答,分析事务的隔离级别以及相关锁机制。

Read More

Bagikan Komentar

浅析MySQL事务中的redo与undo

我们都知道事务有4种特性:原子性、一致性、隔离性和持久性,在事务中的操作,要么全部执行,要么全部不做,这就是事务的目的。事务的隔离性由锁机制实现,原子性、一致性和持久性由事务的redo 日志和undo 日志来保证。所以本篇文章将讨论关于事务中的redo和undo的几个问题:

  • redo 日志与undo日志分别是什么?
  • redo 如何保证事务的持久性?
  • undo log 是否是redo log的逆过程?

Read More

Bagikan Komentar

浅析MySQL InnoDB中的B+树索引

首先列举下在面试过程中对于B+树索引常见的两个问题,希望通过本文简要解决这些问题:

  1. B+树索引是什么?
  2. 为什么说B+树比B树更适合数据库索引?

Read More

Bagikan Komentar

Nginx入门小结

前言

还记得第一次接触Nginx是好几个月以前为了部署一个前端网站,当时简单的学了学Nginx的基本操作,到现在有挺长一段时间,回过头发现学过的早已忘了个干净。老话说的好,好记性不如烂笔头,这篇文章就总结一下Nginx的一些基础入门知识。

Read More

Bagikan Komentar

探索Java内存模型

前言

本文主要是对《深入理解 Java 内存模型——程晓明》和《深入理解Java虚拟机》内存模型部分的一个知识总结,其中也参考了一些其他优秀文章。

操作系统语义

计算机在运行程序时,每条指令都是在CPU中执行的,而程序运行的数据都存在主存里,但是读写主存中的数据没有CPU中执行指令的速度快,如果每次都读取主存。效率就会比较低,所以现代操作系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache) 来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了,其中大致结构如下图所示:

Read More

Bagikan Komentar

浅析 Spring 的IOC容器

前言

在前面的文章 浅析Spring 的IoC和DI中简述了 IOC和DI的基本概念和关系,总体上说,IOC 是一种可以帮助我们解耦各业务对象间依赖关系的对象绑定方式,那么Spring 提供了两种容器类型来提供支持 IOC方式。这两种类型是:

  • BeanFactory: 基础类型的IOC容器,提供完整的IOC服务支持
  • ApplicationContext: ApplicationContext是在 BeanFactory的基础之上构建的,是相对高级的容器实现,除了拥有BeanFactory的所有支持,ApplicationContext提供了其他高级特性。

    Read More

Bagikan Komentar