synchronized这个关键字的核心是在于搞明白锁的对象是谁,谁拥有这个锁,
这个关键字有几个问题:
synchronized是java中的一个关键字,也就是说是Java语言内置的特性。
如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:
1)获取锁的线程执行完了该代码块,然后线程释放对锁的占有;
2)线程执行发生异常,此时JVM会让线程自动释放锁。
别的博客详解:
https://blog.youkuaiyun.com/luoweifu/article/details/46613015