8000+字,就说一个字Volatile
文章整理自 博学谷狂野架构师 简介 volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile 变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。 Java volatile关键字用于将Java变量标记为“存储在主存储器中”。更确切地说,这意味着,每次读取一个volatile变量都将从计算机的主内存中读取,而不是从CPU缓存中读取,并且每次写入volatile变量都将写入主内存,而不仅仅是CPU缓存。 实际上,自Java 5以来,volatile关键字保证的不仅仅是向主存储器写入和读取volatile变量。我将在以下部分解释。 特性 可以把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把...


