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();
}
// }
}
}