public class Test1 {
private static int count = 10;
public synchronized static void f(){
count--;
System.out.println(count);
}
}
如果是静态方法的话,锁定的是当前的class对象:T.class对象。等同于如下写法。
public class Test1 {
private static int count = 10;
public static void f(){
synchronized(T.class){
count--;
System.out.println(count);
}
}
}
问1:T.class是什么?
是Class类的一个对象
问2:在上面的f方法里可以写synchronized(this)吗?
静态的时候,还没有对象产生,(静态方法,静态变量,不需要new出对象,即可访问)所以是不能用this的。