File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -286,7 +286,7 @@ JDK1.6 对锁的实现引入了大量的优化,如偏向锁、轻量级锁、
286
286
### 2.3. 并发编程的三个重要特性
287
287
288
288
1 . ** 原子性** : 一个的操作或者多次操作,要么所有的操作全部都得到执行并且不会收到任何因素的干扰而中断,要么所有的操作都执行,要么都不执行。` synchronized ` 可以保证代码片段的原子性。
289
- 2 . ** 可见性** :当一个变量对共享变量进行了修改 ,那么另外的线程都是立即可以看到修改后的最新值。` volatile ` 关键字可以保证共享变量的可见性。
289
+ 2 . ** 可见性** :当一个线程对共享变量进行了修改 ,那么另外的线程都是立即可以看到修改后的最新值。` volatile ` 关键字可以保证共享变量的可见性。
290
290
3 . ** 有序性** :代码在执行的过程中的先后顺序,Java 在编译器以及运行期间的优化,代码的执行顺序未必就是编写代码时候的顺序。` volatile ` 关键字可以禁止指令进行重排序优化。
291
291
292
292
### 2.4. 说说 synchronized 关键字和 volatile 关键字的区别
@@ -919,7 +919,7 @@ AQS 的全称为(`AbstractQueuedSynchronizer`),这个类在` java.util.con
919
919
920
920
![ AQS类] ( https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/AQS类.png )
921
921
922
- AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器 ,比如我们提到的 ` ReentrantLock ` ,` Semaphore ` ,其他的诸如 ` ReentrantReadWriteLock ` ,` SynchronousQueue ` ,` FutureTask ` 等等皆是基于 AQS 的。当然,我们自己也能利用 AQS 非常轻松容易地构造出符合我们自己需求的同步器。
922
+ AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出大量应用广泛的同步器 ,比如我们提到的 ` ReentrantLock ` ,` Semaphore ` ,其他的诸如 ` ReentrantReadWriteLock ` ,` SynchronousQueue ` ,` FutureTask ` 等等皆是基于 AQS 的。当然,我们自己也能利用 AQS 非常轻松容易地构造出符合我们自己需求的同步器。
923
923
924
924
### 6.2. AQS 原理分析
925
925
You can’t perform that action at this time.
0 commit comments