计算机组成与体系结构 Java基础
1.计算机硬件组成:
1.1.控制器:
程序计数器、指令寄存器IR、指令译码器ID、时序部件
控制器:分析和执行指令程序计数器PC:存储下一条要执行指令的地址指令寄存器IR:存储即将执行的指令指令译码器:对指令中的操作码字段进行分析解释时序部件:提供时序控制信号
1.2.运算器:
算术逻辑单元ALU、累加寄存器AC、数据缓冲寄存器DR、...
ReentrantLock、AQS底层实现原理 并发编程
ReentrantLock介绍:
在单线程情况下交替执行与队列无关,因为使用JDK级别解决同步问题。
可重入锁: 线程已经获取某个共享资源的锁之后,释放锁之前,当前线程还可以再次对于这个共享资源获取锁(锁计数器[state+1])。
在jdk1.6之前->ReentrantLock和Synchronized的区别:
Reentra...
Synchronized底层实现原理 并发编程
synchronized介绍:
synchronized 关键字在多线程环境下作为线程安全的同步锁
synchronized作用:
1.同步代码块(当前对象锁[this] 或 自定义对象锁)
2.同步静态方法(当前类的Class实例,Class数据存在永久代中,该类全局锁)
3.同步非静态方法(当前对象锁)
同步代码块:
//...
Java内存模型-volatile可见性 Java基础
Java内存模型:
Java线程内存模型与CPU缓存模型类似,基于CPU缓存模型建立,Java线程内存模型是标准化的,用于屏蔽各种硬件和操作系统的内存访问差异。
主要分为三大模块: 线程、工作内存、主内存
Java内存模型数据原子操作:
read(读取) 从主内存读取数据
load(载入) 将主内存读取到的数据写入工作内存
us...
Java内存模型-volatile有序性 Java基础
/**
* @Description:Java内存模型-有序性
* @Author:chenxi
* @Date:2020/3/22
**/
public class JMMOrderTest {
private static int a, b = 0;
private static int x, y = 0;
publ...