共計 450 個字符,預(yù)計需要花費 2 分鐘才能閱讀完成。
在 Java 中,可以使用 synchronized
關(guān)鍵字來修飾對象的方法或代碼塊,以實現(xiàn)對象的同步。
- 修飾方法:
public synchronized void method() {// 同步的代碼
}
在上述示例中,使用 synchronized
關(guān)鍵字修飾了一個方法。這將使得該方法在任意時刻只能被一個線程執(zhí)行,其他線程需要等待當前線程執(zhí)行完畢才能繼續(xù)執(zhí)行。
- 修飾代碼塊:
public void someMethod() {// 非同步的代碼
synchronized (lock) {// 同步的代碼
}
// 非同步的代碼
}
在上述示例中,我們使用 synchronized
關(guān)鍵字修飾了一個代碼塊,需要提供一個對象作為鎖。只有獲取到該鎖的線程才能執(zhí)行同步的代碼塊,其他線程需要等待該鎖釋放才能繼續(xù)執(zhí)行。
需要注意的是,synchronized
關(guān)鍵字修飾的對象鎖是基于對象的,如果對于同一個對象的不同實例,每個實例都是獨立的鎖,互不影響。如果需要對類的所有實例進行同步,可以使用 static
修飾方法或代碼塊來實現(xiàn)。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完