Logo

标签:原理篇

4 篇文章

happens-before规则与线程单例安全习题

happens-before规则基本介绍happens-before 规定了对共享变量的写操作对其它线程的读操作可见,它是可见性与有序性的一套规则总结,抛开以下 happens-before 规则,JMM 并不能保证一个线程对共享变量的写,对于其它线程对该共享变量的读可见线程t1中对x=10 对线程...

volatile原理

基本概念volatile 的底层实现原理是内存屏障,Memory Barrier(Memory Fence)对volatile变量的写指令后会加入写屏障对volatile变量的读指令前会加入读屏障保证可见性写屏障(sfence)保证在该屏障之前的,对共享变量的改动,都同步到主存当中 @Acto...

指令重排原理以及案例

基本概念JVM 会在不影响正确性的前提下,可以调整语句的执行顺序,思考下面一段代码static int i;static int j;// 在某个线程内执行如下赋值操作i = ...; j = ...;比如 : 调整为 下面的 , 最终的结果也不会发生变化j = ...i = ... 这种特性称之为...

线程运行原理

栈与栈帧Java Virtual Machine Stacks (Java 虚拟机栈)JVM 中由堆、栈、方法区所组成,其中栈内存是给线程使用,每个线程启动后,虚拟机就会为其分配一块栈内存。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在...