技术栈

指令重排

J_bean
13 天前
synchronized·volatile·原子性·可见性·有序性·指令重排
阐述 volatile 和 synchronized 的区别以及底层原理重点:不保证原子性i++ 分为三步:读i → +1 → 写回 volatile只能保证读到最新值,不能把三步打包成原子,多线程下依然会出现计数错误。
rebibabo
2 个月前
java·学习笔记·volatile·可见性·有序性·指令重排
Java高并发底层原理(七)volatile 到底解决了什么问题缓存一致性协议能够协调多个 CPU Core 对同一条 Cache Line 的读写,但 Java 程序仍然需要明确一件事:一个线程修改变量以后,另一个线程什么时候必须看到这个修改?
java之书
3 年前
缓存·并发编程·volatile·内存屏障·指令重排
3_并发编程可见性(volatile)之缓存锁内存屏障过程从下面的程序可以知道main线程把stop修改成false,而在t1线程没有中没有读取到stop值为false,所以导致了t1线程不能够停止。
我是有底线的