Java中的同步(synchronized)

2021-09-22 14:08:25 字數 978 閱讀 6296

為了解決資源共享問題,我們引入了同步

使用同步的時候,加上synchronized關鍵字

synchronized同步鎖,鎖住的是物件,該物件被鎖住之後,只能有乙個執行緒可以使用該物件,其他執行緒如果要使用該物件,只能等上乙個執行緒使用完了過後才行

同步分為同步**塊同步方法

1. 同步**塊

synchronized(同步物件)
在使用同步**塊是必須有乙個需要同步的物件

例如:

public mythread implements runnablecatch(exception e)

system.out.println("賣票:ticket = " + ticket--);}}

}}

}public class syncdemo02

}

在該例子中我們建立的三個執行緒作用的都是mt這乙個物件,假如是t1執行緒先執行,當t1的同步**塊沒有執行完之前,t2,t3是進不去的,只有t1執行完後,t2,t3才會有機會

2. 同步方法

synchronized  方法返回值  方法名稱(引數名稱)
public mythread implements runnable

}//同步方法

public synchronized void sale()

catch(exception e)

system.out.println("賣票:ticket = " + ticket--);}}

}public class syncdemo02

}

這裡我們把上乙個例子中同步**塊提出來,製作成了乙個同步方法使用,可以達到與同步**塊相同的效果

Ansible 資料同步模組synchronize

ansible 資料同步模組synchronize 主要用於目錄 檔案的同步,主要基於rsync命令工具同步目錄和檔案 ansible synchronize模組詳解 compress 開啟壓縮,預設為開啟 archive 是否採用歸檔模式同步,保證原始檔和目標檔案屬性一致 checksum 是否效...

Java中Synchronized同步的使用

synchronized的兩種使用方法 1 同步物件 synchronized 物件名 2 同步方法 publicsynchronized方法名 引數 notify 方法 它們必須用在被synchronized同步的object的臨界區內。通過的wait 我們可以使得處於臨界區內的執行緒進入阻塞狀態...

Java中的同步和非同步

以通訊為例 同步 傳送乙個請求 等待返回 然後再傳送下乙個請求 非同步 傳送乙個請求 不等待返回 隨時可以再傳送下乙個請求 併發 同時傳送多個請求.舉個例子 普通 b s模式 同步 ajax 技術 非同步 同步 提交請求 等待伺服器處理 處理完畢返回 這個期間客戶端瀏覽器不能幹任何事 非同步 請求通...