静态方法使用synchronized修饰.

package seday10;
/**
* @author xingsir
* 静态方法若使用synchronized修饰,这个方法一定具有同步效果。静态方法上使用的同步监视器对象为这个类的"类对象",
* 每个java定义的类都只有唯一的一个类对象(Class类型的的实 例)
*/
public class syncDemo3 {

public static void main(String[] args) {
Thread t1 =new Thread() {
public void run() {
Class1.method();//静态类,直接用类名调用方法
}
};
Thread t2 = new Thread() {
public void run() {
Class1.method();//静态类,直接用类名调用方法
}
};
t1.start();//启动
t2.start();//启动
}

}
class Class1{
/*
* 两种方法:
* 1.直接加在方法名前面 public synchronized static void dosome(){}
*/
public synchronized static void method() {
/*
* 2.静态方法中若使用同步监视器对象,也可以使用 当前类的类对象,获取当前类的类对象可以直接
通过:类名.class得到。如下:synchronized (Foo.class) {}
*/
// synchronized (Foo.class) {
try {
Thread thread =Thread.currentThread();
System.out.println(thread.getName()+":正在执行method...");
Thread.sleep(5000);
System.out.println(thread.getName()+":执行method完毕!");
} catch (Exception e) {
e.printStackTrace();

}
// }
}
}

原文地址:https://www.cnblogs.com/xingsir/p/12083706.html