在多線程編程中,同步塊(synchronized block)用于保護代碼塊,使得同一時間只有一個線程能夠執行該代碼塊,從而避免并發問題。同步塊使用一個對象作為鎖,確保在同步塊內對共享資源的訪問是線程安全的。
1. 什么是同步塊?
同步塊是 Java 中的一種同步機制,用于保護代碼塊,以確保同一時間只有一個線程能夠執行該代碼塊。同步塊通過一個對象的監視器(鎖)來實現,即只有獲得該對象的監視器的線程才能執行同步塊內的代碼。
2. 語法
synchronized (lockObject) {// 代碼塊
}
lockObject
是一個對象,用作鎖。- 同步塊中的代碼在
lockObject
被鎖定時執行。
3. 例子解釋
synchronized (synchronizedList) {Iterator<String> iterator = synchronizedList.iterator();while (iterator.hasNext()) {System.out.println(iterator.next());}
}
-
鎖對象
synchronizedList
:synchronizedList
是一個線程安全的集合,通常通過Collections.synchronizedCollection
方法獲得。synchronizedList