5.volatile:初识

前言

在看《Java多线程编程核心技术》的时候,讲到了volatile关键字,又是内存模型,又是可见性的,感觉这个关键字不简单,自己又找了其他资料,果不其然,其背后的隐藏的内容,都可以称得上由volatile引发的血案了。首先看下这个单词的意思,如下图,摘自百度翻译:
volatile百度翻译

我是学完了也没理解到这个易变的/不稳定的是怎么体现的,怪不得总是说volatile关键字,而不会说"易变的"关键字,总感觉看到它的中文翻译根本联想不出来这玩意到底是干啥的。

volatile是什么?

volatile是解决多线程同步问题的一个轻量级关键字,它具有以下特性:

  1. volatile能够保证可见性
  2. volatile能够保证有序性
  3. volatile不能保证原子性

这里先给结论,后面将会对每一项都做细致的分析。
关于volatile关键字的分析,主要参考了以下资料:

  1. 你真的了解volatile关键字吗?
  2. 周志明《深入理解Java虚拟机:JVM高级特性与最佳实践》第十二章
  3. 为什么volatile不能保证原子性而Atomic可以?

我主要是做一些总结,然后加入一些自己的思考。

你可能感兴趣的:(5.volatile:初识)