synchronized關鍵字的理解

2022-05-30 22:30:14 字數 331 閱讀 4852

第一,記住wait必須要進行異常捕獲,否則編譯時會丟擲 interruptedexception異常

第二,記住呼叫wait或者notify方法必須採用當前鎖呼叫,即必須採用synchronized中的物件,否則丟擲illegalmonitorstateexception

這樣子為了執行緒同步,需要獲取synchronized的物件鎖時,才能執行synchronized**塊中的內容,且當此物件執行了wait()方法時,此執行緒會掛起,並會釋放鎖物件,

notify會喚醒此物件執行緒池中堵塞的執行緒進入等待狀態,注意此方法不會釋放鎖,會執行完synchronized**塊中的內容(如果在**塊中呼叫的話)

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可以用在方法上也可以使用在 塊中,其中方法是例項方法和靜態方法分別鎖的是該類的例項物件和該類的物件。而使用在 塊中也可以分為三種,具體的可以看上面的 這裡的需要注意的是 如果鎖的是類物件的話,儘管...