回答

6

禮貌http://sreekalyan.blogspot.com/2007/01/thread-safe-and-thread-aware.html

主題意識到 在任何給定的時間,最多隻有一個線程可以在對象上的活動。該對象知道其周圍的線程,並通過將所有線程放入隊列來保護自己免受線程攻擊。由於在任何給定時間在對象上只能有一個活動的線程,對象將始終保持其狀態。不會有任何同步問題。

線程安全: 在給定的時間,多個線程可以在對象上活躍。對象知道如何處理它們。它已正確同步對共享資源的訪問。它可以在這個多線程環境中保存其狀態數據(即它不會陷入中間和/或不確定狀態)。在多線程環境中使用此對象是安全的。

使用既不是線程感知也不是線程安全的對象可能會導致獲取不正確的和隨機的數據以及神祕的異常(由於嘗試訪問線程正在使用的對象並且處於不穩定狀態時,在訪問第二線程的瞬間處於中間狀態)。

1

我相信一個自己的互斥鎖定序列化函數是線程安全的,但可能不是線程感知的。