在Java中,可以使用關鍵字synchronized
來給對象加鎖。具體的方法有兩種:
synchronized
方法:在方法聲明中使用synchronized
關鍵字,表示該方法一次只能被一個線程訪問。例如:public synchronized void method() {
// 在這里編寫需要加鎖的代碼
}
synchronized
代碼塊:在代碼塊中使用synchronized
關鍵字,表示只有獲取到鎖的線程才能執行該代碼塊。例如:synchronized (object) {
// 在這里編寫需要加鎖的代碼
}
在上述代碼中,object
是需要加鎖的對象,只有獲取到object
對象的鎖的線程才能執行該代碼塊。
需要注意的是,當多個線程同時訪問一個對象時,只有一個線程能夠獲得該對象的鎖,其他線程會被阻塞,直到獲取到鎖的線程執行完畢釋放鎖。這樣可以確保在多線程環境下對共享資源的安全訪問。