synchronized關鍵字實現執行緒安全

2022-08-04 19:00:14 字數 704 閱讀 9649

/**

* created by it on 2017/6/7.

*/public class mythread extends thread

public mythread(service service)

//這種做法是非執行緒安全的

public synchronized void print1(int v) throws interruptedexception

}public void print2(int v) throws interruptedexception }}

public void run()

//print1(val);}

//print2(val);}

catch (interruptedexception ie)}}

/**

* created by it on 2017/6/7.

*/public class threadtest

}print1方法上加上synchronized,沒有起同步作用,是因為該方法被不同例項呼叫,實現同步可以使用print2方法,在類例項上加鎖;

print2方法等同於把方法放入乙個類中,在mythread中定義靜態類例項變數,以實現synchronized的同步作用

public class realexecu 

}}

synchronized關鍵字解析

一 修飾方法 1.修飾普通方法 對呼叫此方法的物件加鎖 2.修飾static方法 對呼叫此方法的類的所有物件加鎖 3.不能修飾構造方法,但是可以在構造方法內部修飾 塊 二 修飾 塊 1.synchronized this 相當於修飾普通方法 2.synchronized a.class 相當於修飾s...

解讀synchronized關鍵字

size large 最近在寫多執行緒程式,網上收集總結了synchronized的用法,結果如下 size 1 synchronized關鍵字的作用域有二種 1 是某個物件例項內,synchronized amethod 可以防止多個執行緒同時訪問這個物件的synchronized方法 如果乙個物...

synchronized 關鍵字分析

synchronized是典型的可衝入鎖,jdk1.5之後做了較大的優化 如圖,synchronized可以用在方法上也可以使用在 塊中,其中方法是例項方法和靜態方法分別鎖的是該類的例項物件和該類的物件。而使用在 塊中也可以分為三種,具體的可以看上面的 這裡的需要注意的是 如果鎖的是類物件的話,儘管...