Java中synchronized用在静态方法和非静态方法上面的区别
2018-08-10 17:51
357 查看
synchronized 修饰在 static方法和非static方法的区别
在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法。也可以synchronized来修饰方法里面的一个语句块。那么,在static方法和非static方法前面加synchronized到底有什么不同呢?大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,是属于类的锁。而非static方法获取到的锁,是属于当前对象的锁。所以,他们之间不会产生互斥。
看代码:
运行结果是:
那当我们想让所有这个类下面的方法都同步的时候,也就是让所有这个类下面的静态方法和非静态方法共用同一把锁的时候,我们如何办呢?此时我们可以使用Lock。
相关文章推荐
- 【java】synchronized修饰静态方法和非静态方法的区别
- java中静态方法和非静态方法覆盖的区别
- java中覆盖静态方法和非静态方法的区别
- java中静态方法和非静态方法覆盖的区别
- Java实例说明 静态方法和非静态方法的区别
- java中静态方法和非静态方法的区别
- java中静态方法和非静态方法覆盖的区别
- Java中静态方法和非静态方法的区别
- (4.1.27.10)Jni回调java静态方法和非静态方法
- java静态方法和实例方法的区别
- C#中静态方法和非静态方法的区别(一)
- java中静态方法和非静态方法的存储
- java synchronized静态同步方法与非静态同步方法,同步语句块
- Android Stuido Ndk-Jni 开发(五):Jni回调java静态方法和非静态方法
- C#中静态方法和非静态方法的区别(二)
- java synchronized静态同步方法与非静态同步方法,同步语句块
- java synchronized静态同步方法与非静态同步方法,同步语句块
- Java的synchronized加在方法上或者对象上有什么区别?
- java synchronized静态同步方法与非静态同步方法,同步语句块
- java synchronized同步静态方法和同步非静态方法的区别与举例