synchronized的四種用法

2021-09-11 15:34:07 字數 467 閱讀 9042

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

2.對某一**塊使用,synchronized後跟括號,括號裡是變數,這樣,一次只有乙個執行緒進入該**塊.例如:

public int synmethod(int a1){

synchronized(a1) {

//一次只能有乙個執行緒進入

3.1)乙個執行緒訪問乙個物件中的synchronized(this)同步**塊時,其他試圖訪問該物件的執行緒將被阻塞。

2)當乙個執行緒訪問物件的乙個synchronized(this)同步**塊時,另乙個執行緒仍然可以訪問該物件中的非synchronized(this)同步**塊。 

4.synchronized後面括號裡是類

synchronized的四種用法

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

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 修飾靜態...