java中的关键字syncronized,具有以下特点:
- 可以修饰方法或者一个代码块,属于悲观锁的一种。修饰静态方法时,加锁对象是类的Class对象,修饰非静态方法或者代码块时,锁住的是调用该方法的当前对象。
- 可以保证原子性,可见性,
可以保证原子性,可见性,不能保证有序性,即它所修饰的方法或者代码块内部的指令,是可以被jvm重排序的,这也是为什么双重检查模型需要用volatile来修饰变量的原因。
java中的关键字syncronized,具有以下特点:
可以保证原子性,可见性,不能保证有序性,即它所修饰的方法或者代码块内部的指令,是可以被jvm重排序的,这也是为什么双重检查模型需要用volatile来修饰变量的原因。