摘自http://blog.csdn.net/luoweifu/article/details/46613015
1.修饰代码块,作用范围{},作用对象,调用此代码块的对象
2.修饰方法,作用范围,整个方法,作用对象,调用此方法的对象
3.修饰静态方法,作用范围,整个静态方法,作用对象,这个类的所有对象
4.修饰一个类,作用范围{},作用对象,这个类的所有对象
注:synchronized关键字不能继承
A 如果synchronized的作用对象是非静态的,它取得的锁是对象锁。如果作用对象是类或者静态方法,它取得的锁是类锁,该类的所有对象用同一把锁。
B 每个对象只有一个锁与之关联,谁拿到这个锁,谁就可以运行它所控制的代码
C 实现同步同步要很大的系统代价作为开销,可能造成死锁,不做无谓的同步控制