synchronized关键字有最主要的三种使用方式:
修饰实例方法:给当前对象实例枷锁,进入同步代码前要先获得当前对象实例的锁。
修饰静态方法:给当前类对象枷锁,进入同步代码前要先获得当前类对象的锁。即给当前类加锁,作用于类的所有对象实例。因为静态成员不属于任何一个实例对象,是类成员。
修饰代码块:对给定对象加锁, 进入同步代码前要先获得给定对象的锁。修饰代码块也是锁定当前对象的。
synchronized关键字有最主要的三种使用方式:
修饰实例方法:给当前对象实例枷锁,进入同步代码前要先获得当前对象实例的锁。
修饰静态方法:给当前类对象枷锁,进入同步代码前要先获得当前类对象的锁。即给当前类加锁,作用于类的所有对象实例。因为静态成员不属于任何一个实例对象,是类成员。
修饰代码块:对给定对象加锁, 进入同步代码前要先获得给定对象的锁。修饰代码块也是锁定当前对象的。