zl程序教程

您现在的位置是:首页 >  其它

当前栏目

第一篇(1):原子性,可见性,有序性

原子 可见 第一篇
2023-09-27 14:19:46 时间

摘要

并发编程世界里,由于CPU缓存导致的可见性问题,线程切换导致的原子性问题,以及编译器重排序导致的有序性问题是并发编程Bug的根源。

正文

可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到的特性。
共享变量指的是存放在堆内存,由所有线程所共享的变量。比如:实例变量,静态变量。
如图2所示:
图2
共享变量V可以由线程A和线程B同时操作,线程A和B首先从各自的CPU缓存或者寄存器中读取数值,然后由CPU的寄存器写入内存中。

public class VisibleProblemTest {
   
	private static Boolean aBoolean