- synchronized监视器监视对象
- synchronized监视器监视类
- 线程安全问题
- volatile
synchronized方法
什么时候用synchronized ,有线程安全问题的时候用,什么时候有线程安全问题?多线线程访问同一个共享变量的时候.
同步方法
- 方法内部的变量不是共享变量所以不会有线程安全问题
- 实例变量非线程安全,多个线程共用一个实例变量就会有这个问题,解决办法是在方法前加synchronized关键字
- 一个类的不同实例的同步方法是异步执行的
- 一个类的实例的同步方法和非同步方法是异步执行的(一个线程调用带synchronized的方法,另一个线程调用不带synchronized的方法异步执行不会阻塞)
- 锁重入,线程已经在执行同步方法,同步方法中嵌套的同步方法也可以执行,即能获得同一个对象的不同同步对象的方法
- 同步不具有继承性,子类继承父类的同步方法,子类的方法也需要加synchronized关键字才是同步方法
同步语句块