synchronize
1 每个对象都持有一个锁。
2 在一个类中,在对象方法前加synchronize关键字,执行该方法的代码需要获取当前对象的锁。
3 在一个类中,在类方法前加synchronize关键字,执行该方法的代码需要获取类对象的锁。
4 在代码块中加synchronize关键字,需要指明要获取哪个对象的锁。
5 可重入性:获取锁之后,如果在代码块中需要调用其他代码块,且其他代码块也需要获取相同的锁,则可以直接执行,无需等待。
6 synchronize关键字保证了内存可见性,在释放锁时,所有写入都会写回内存,而获得锁后,都会从内存中读取最新数据。给变量加volatile关键字也有同样的作用。
7 死锁,懂得都懂。