在Java中,synchronized關鍵字用于實現線程之間的同步。它可以用來修飾方法或代碼塊。
在方法聲明中使用synchronized關鍵字來實現對整個方法的同步。只有一個線程可以進入被synchronized修飾的方法,其他線程需要等待。
public synchronized void method() {
// 代碼邏輯
}
使用synchronized關鍵字來修飾一段代碼塊,只有一個線程可以進入該代碼塊,其他線程需要等待。
synchronized (object) {
// 代碼邏輯
}
這里的object
可以是任意對象,但是需要保證不同線程使用的是同一個對象。
需要注意的是,synchronized關鍵字可以實現線程之間的同步,但是會引入一定的性能開銷。另外,synchronized關鍵字只能實現對同一個對象的同步,對于不同對象之間的同步需要使用其他機制,如Lock接口。