synchronized的四種用法

2021-08-29 23:46:44 字數 721 閱讀 9984

一 修飾方法

synchronized修飾乙個方法很簡單,就是在方法的前面加synchronized,synchronized修飾方法和修飾乙個**塊類似,只是作用範圍不一樣,修飾**塊是大括號括起來的範圍,而修飾方法範圍是整個函式。

例如:方法一:

public synchronized void method()

方法二:

public void method()

}

寫法一修飾的是乙個方法,寫法二修飾的是乙個**塊,但寫法一與寫法二是等價的,都是鎖定了整個方法時的內容。

synchronized關鍵字不能繼承。 

雖然可以使用synchronized來定義方法,但synchronized並不屬於方法定義的一部分,因此,synchronized關鍵字不能被繼承。如果在父類中的某個方法使用了synchronized關鍵字,而在子類中覆蓋了這個方法,在子類中的這個方法預設情況下並不是同步的,而必須顯式地在子類的這個方法中加上synchronized關鍵字才可以。當然,還可以在子類方法中呼叫父類中相應的方法,這樣雖然子類中的方法不是同步的,但子類呼叫了父類的同步方法,因此,子類的方法也就相當於同步了。這兩種方式的例子**如下: 

在子類方法中加上synchronized關鍵字

class pare

synchronized的四種用法

1.方法宣告時使用,放在範圍操作符 public等 之後,返回型別宣告 void等 之前.即一次只能有乙個執行緒進入該方法,其他執行緒要想在此時呼叫該方法,只能排隊等候,當前執行緒 就是在synchronized方法內部的執行緒 執行完該方法後,別的執行緒才能進入.2.對某一 塊使用,synchro...

synchronized的四種用法

synchronized修飾乙個方法很簡單,就是在方法的前面加synchronized,synchronized修飾方法和修飾乙個 塊類似,只是作用範圍不一樣,修飾 塊是大括號括起來的範圍,而修飾方法範圍是整個函式 例如 方法一 public synchronized void method 方法二...

原子性 synchronized 修飾的四種方式

原子性 synchronized 依賴jvm 1 修飾 塊 大括號括起來的 作用於 呼叫的物件 比如 public void test1 int j j,i 2 修飾方法 整個方法,作用於 呼叫的物件 比如 修飾乙個方法 public synchronized void test2 i 3 修飾靜態...