Skip to content

Commit ed1e4ed

Browse files
committed
📝 Writing docs.
1 parent d6095d8 commit ed1e4ed

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Java非阻塞机制
2+
title: Java 并发机制的底层实现
33
date: 2018/05/19
44
categories:
55
- Javase
@@ -9,13 +9,14 @@ tags:
99
- juc
1010
---
1111

12-
# Java 非阻塞机制
12+
# Java 并发机制的底层实现
1313

1414
> 本文内容基于 JDK1.8。
1515
1616
<!-- TOC depthFrom:2 depthTo:3 -->
1717

1818
- [concurrent 包的实现](#concurrent-包的实现)
19+
- [volatile](#volatile)
1920
- [CAS](#cas)
2021
- [简介](#简介)
2122
- [操作](#操作)
@@ -50,6 +51,14 @@ AQS,非阻塞数据结构和原子变量类(Java.util.concurrent.atomic 包
5051
<img src="https://raw.githubusercontent.com/dunwu/Javase-notes/master/images/concurrent/juc-architecture.png">
5152
</p>
5253

54+
## volatile
55+
56+
volatile 是轻量级的 synchronized,它在多处理器开发中保证了共享变量的“可见性”。
57+
58+
可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。如果 volatile 变量修饰符使用恰当的话,它比 synchronized 的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。
59+
60+
如果一个字段被声明成volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的。
61+
5362
## CAS
5463

5564
### 简介
@@ -192,7 +201,7 @@ CAS 通过调用 JNI(JNI:Java Native Interface 为 Java 本地调用,允许
192201
## 资料
193202

194203
* [Java 并发编程实战](https://item.jd.com/10922250.html)
195-
* [Java 并发编程的艺术](https://item.jd.com/11740734.html)
204+
* [Java 并发编程的艺术](https://item.jd.com/11740734.html):第 2 章 Java 并发机制的底层实现原理
196205
* https://www.jianshu.com/p/473e14d5ab2d
197206
* https://blog.csdn.net/ls5718/article/details/52563959
198-
* http://tutorials.jenkov.com/java-concurrency/non-blocking-algorithms.html
207+
* http://tutorials.jenkov.com/java-concurrency/non-blocking-algorithms.html

0 commit comments

Comments
 (0)