diff --git "a/java\345\271\266\345\217\221\347\274\226\347\250\213/java\345\271\266\345\217\2211.md" "b/java\345\271\266\345\217\221\347\274\226\347\250\213/java\345\271\266\345\217\2211.md"
index 3826aa861708cbecdd1d6cfb04ed525e5a7db560..56a4ba474966c61b0259f6847d9cfb896e723560 100644
--- "a/java\345\271\266\345\217\221\347\274\226\347\250\213/java\345\271\266\345\217\2211.md"
+++ "b/java\345\271\266\345\217\221\347\274\226\347\250\213/java\345\271\266\345\217\2211.md"
@@ -592,6 +592,24 @@ public static void main(String[] args) throws InterruptedException {
```
+
+### 思考
+
+synchronized实际是 用对象锁保证了临界区中代码的原子性,临界区内的代对码对外是不可分割的,不会被线程切换所打断。
+
+为了加深理解思考下面的问题:
+
+- 如果吧synchronized(obj)放在for循环外面如何理解?
+
+ 放在外面相当于给整个循环加上了锁那么就是保护了循环次数*++/--的指令这期间不会被其他线程干扰
+
+- 如果t1 synchronized(obj1)但她synchronized(obj2)会怎么样?
+
+ 不可以,t1,t2如果锁的不是一个对象,那么当发生上下文切换的时候,别的线程不会被阻塞
+
+- 如果t1synchronized(obj)t2没有会怎么样?如何理解
+
+ t2不加锁的话他可以直接拿到共享变量,不会被阻塞住
#### synchronized原理
synchronized实际上利用对象保证了临界区代码的原子性,临界区内的代码在外界看来是不可分割的,不会被线程切换所打断