多核紅利難享,錯誤同步導致偶發缺陷,測試難復現。靜態分析可在編譯期發現隱患。
商業 Eclipse 插件,專攻並發缺陷(數據競爭、原子性違反、死鎖風險),發現其他工具漏報的問題。提供豐富上下文(訪問路徑、鎖持有情況、調用鏈)輔助診斷。
父類 `BankAccount` 用 `lock` 保護 `balance`,子類 `BonusBankAccount` 新增 `applyBonus()` 直接呼叫 `adjustBalance()` 未同步 `lock`。ThreadSafe 報告 `balance` 未一致同步,Access 視圖顯示 `adjustBalance()` 訪問無鎖,調用鏈定位到 `BonusBankAccount.applyBonus()`。



Apache JMeter 2.1.0 中 `RespTimeGraphVisualizer.internalList`(`List`)被 UI 線程 `actionPerformed` 與後台線程 `run()` 同時訪問,無同步。ThreadSafe 警告集合因不一致同步可能破壞內部不變量(無限迴圈、數據損壞)。



K-9 Mail 中 `mDraftId` 被後台線程 `doInBackground()`(AsyncTask)與主線程 `onDiscard()`(onBackPressed)同時訪問,無同步。ThreadSafe 警告異步回調方法未同步訪問共享域。


JMeter 2.10 中對 `Collections.synchronizedList` 返回的視圖 `entrySet().iterator()` 迭代未持有集合鎖。JDK 文檔明確要求迭代時手動同步,否則拋 `ConcurrentModificationException` 或行為不可預期。ThreadSafe 精準報告「同步集合不安全迭代」。

靜態分析補足測試與 Code Review 盲區,ThreadSafe 專注並發、上下文豐富,能早期攔截數據競爭、原子性違反、死鎖風險等高危缺陷。建議納入 CI 流程。
出處:bianceng.cn