JAVA关键字

1.synchronized详解
JAVA语言的关键字 , 当它用来修饰一个方法或者一个代码块的时候 , 能够保证同一时刻最多只有一个线程执行该段代码 .
一 . 当两个并发线程访问同一个对象 Object 中的这个synchronized(this)同步代码块时 , 一个时间内只能有一个线程得到执行 , 另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块 .
二 . 当一个线程访问 Object的一个 synchronized(this)同步代码块时 , 另一个线程仍然可以访问该 Object中的非 synchronized(this) 同步代码块 .
三 . 尤其关键的是 , 当一个线程访问 Object 中一个 synchronized(this)同步代码块时 ,其他线程对 Object 中所有其他synchronized(this)同步代码块的访问将被阻塞 .
四 . 三同样适用其他同步代码块 , 当一个线程访问 Object一个 synchronized(this)同步代码块时 , 它就获得这个object的对象锁 . 结果其他线程对这个object对象所有同步代码部分的访问将被暂时阻塞 .

原文地址:https://www.cnblogs.com/spenserliu/p/4572138.html