-
sychronized代码块
-
sychronized的同步监视器
-
在通过实现Runnable接口创建的类的实例化对象只有一个,这时同步监视器(锁)通过this获取
-
在通过继承Thread类创建的类的实例化对象有多个,这时同步监视器(锁)通过类.class获取
-
-
-
sychronized方法
-
sychronized加在普通方法上
-
在通过实现Runnable接口创建的类的实例化对象只有一个,加在普通方法上,默认同步监视器是this,上锁的是调用该方法的唯一实例
-
在通过继承Thread类创建的类的实例化对象有多个,加在普通方法上,默认同步监视器是this,这时不能保证线程同步(线程安全),因为有多个实例化对象
-
-
sychronized加在静态方法上
-
加在静态方法上,默认同步监视器是当前类.class
-
-
-
sychronized的同步监视器
-
同步监视器不论是在通过实现Runnable接口创建的类的实例化对象只有一个情况下,还是在在通过继承Thread类创建的类的实例化对象有多个,使用当前类.class都可以保证线程安全
-