Java synchronized (1)
1. 解决问题
多线程并发问题。
2. 原理
3. 注意点
a. synchronized(class、this、object)区别?
synchronized(class)很特别,它会让另一个线程在任何需要获取class做为monitor的地方等待。class和this可以同时使用。
1. 对于实例同步方法,锁定当前实例对象;
2. 对于静态同步方法,锁定当前对象的class对象;
3. 对于方法同步块,synchronized锁定括号内配置的对象。
class与this的几种情况:
synchronized(class)
synchronized(this)
线程各自获取monitor,不会等待;
synchronized(this)
synchronized(this)
如果不同线程监视同一个实例对象,就会等待;如果不同的实例,就不会等待;
synchronized(class)
synchronized(class)
如果不同线程监听同一个实例或不同的实例对象,都会等待。
齊帥