- 简介
- 目录大纲
- 最新文档
- 文集下载
ThreadLocal原理
## 背景 软件开发过程中并发是很重要的手段,引入多线程开发之后,自然要考虑好同步、互斥、线程安全等内容。线程安全的实现方式有三种,分别为互斥同步、非阻塞同步、无同步三种: 互斥同步:也称为阻塞同步,是一种最常见的并发正确性保障手段。同步是指在多线程并发访问数据时,保证共享数据在同一时刻只能被一个线程访问。互斥是实现同步的一种手段,主要的互斥实现方式有临界区、互斥量和信号量等。互斥同步最主要的问……
ricear - 2024年2月3日 20:09
CAS原理
## 含义 CAS 全称是 Compare and Swap,即比较并交换。 它是一种无锁原子算法,同时也是一种乐观机制。 CAS 映射到操作系统就是一条 CPU 原子指令,实现方式是基于硬件平台的汇编指令,在 Intel 的 CPU 中,使用的是 cmpxchg 指令,就是说 CAS 是靠硬件实现的,从而在硬件层面提升效率。 CAS 包含 3 个参数 V、E、N: V: Value,即要……
ricear - 2024年2月3日 20:02
创建线程的方式
## 继承 Thread 类 通过继承 Thread 类,并重写 run 方法,就可以创建一个线程。 首先定义一个类来继承 Thread 类,重写 run 方法。 然后创建这个子类的对象,并调用 start 方法启动线程。 ~~~java public class MyThread extends Thread{ @Override public voi……
ricear - 2023年5月31日 17:36
ConcurrentHashMap和TreeMap实现原理
## 1 HashMap 1.1 简介 Java 为数据结构中的映射定义了一个接口 java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、HashTable、LinkedHashMap和TreeMap,类继承关系如下图所示: 下面针对各个实现类的特点做一些说明: HashMap: 根据键的 hashCode 值存储数据,大多数情况下可以直接定位到他的值,因而具有很快的访……
ricear - 2022年11月7日 16:34
StringBuffer和StringBuilder的区别
1 各自的特点 1.1 String 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 String 的值是不可变的,这就导致每次对 String 的操作都会生成新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,下图是对 String 操作时内存变化的图: 我们可以看到,初始 String 值是 hello,然后在这个字符串后面……
ricear - 2022年10月8日 10:43