靜態方法使用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();

}
// }
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM