diff --git a/notes/Java_并发编程.md b/notes/Java_并发编程.md
index 762496b..368affd 100644
--- a/notes/Java_并发编程.md
+++ b/notes/Java_并发编程.md
@@ -154,7 +154,6 @@ Java 线程的生命周期分为以下五类状态:
-
### 1.4 线程终止
通常线程会随着代码的运行完成而终止,但如果你在线程中进行了循环操作,此时就需要考虑如何安全地停止线程?虽然 Thread 类提供了 `stop()` 方法,但是其已经被标识为废弃,因为 `stop()` 只是暴力的停止线程, 但此时线程中的操作仍可能处于中间状态,此时暴力地停止就可能会产生非预期的结果。想要安全的停止线程,可以通过改变终止标志位的方式来实现:
@@ -326,7 +325,6 @@ public class J1_ThreadUnsafe {
-
### 4.3 缓存一致性协议
在多线程环境下,每个线程运行在不同的处理器上,当多个线程并发访问同一个共享变量时,这些线程的执行处理器都会在自己的高速缓存中保留一个该共享变量的副本,这种情况下如何让一个处理器对数据的更改能被其他处理器感知到?为了解决这个问题,需要引入一种新的通讯机制,这就是缓存一致性协议。
@@ -390,7 +388,6 @@ public class J1_ThreadUnsafe {
-
## 五、有序性
### 5.1 顺序语义
@@ -1895,7 +1892,12 @@ public class J2_ThreadSafe {
-
+## 参考资料
+
+1. 黄文海 . Java多线程编程实战指南(核心篇). 电子工业出版社 . 2017-04
+2. 葛一鸣 . 实战Java高并发程序设计(第2版). 电子工业出版社 . 2018-10
+3. 周志明 . 深入理解Java虚拟机(第2版). 机械工业出版社 . 2013-09-01
+4. 汪文君 . Java高并发编程详解 . 机械工业出版社 . 2018-06