在多線程環境下保證共享變量的線程安全,需解決原子性、可見性、有序性三大問題。以下是核心解決方案及適用場景:
一、同步鎖機制(互斥訪問)
-
synchronized
關鍵字- 原理:通過 JVM 監視器鎖(Monitor)確保同一時間僅一個線程訪問臨界區。
- 示例:
public class Counter {private int count = 0;public synchronized void increment() { // 同步方法count++; }public void safeIncrement() {synchronized(this) { // 同步代碼塊(粒度更細)count++;