synchronized关键字修饰静态方法和非静态方法的总结?
synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,称之为对象锁;
此时,同一个对象在两个线程中分别访问该对象的两个同步方法,产生互斥;不同对象在两个线程中调用同一个同步方法,不互斥。
synchronized修饰静态方法,实际上是对该类对象加锁,称之为类锁。
此时,用类在两个线程中调用两个不同的同步方法,会产生互斥;用一个类的静态对象在两个线程中调用静态方法或非静态方法,会产生互斥;一个对象在两个线程中分别调用静态同步方法和一个非静态方法,不会产生互斥。