C 11 中 const 執行緒安全的真正意義
const 在 C 11 中表示執行緒安全嗎?
在有限的意義上,是的。標準函式庫期望 const 物件上的操作是線程安全的,這意味著它不會引發資料爭用。然而,這是一個可能被破壞的契約,導致未定義的行為。
相當於 Java 的同步?
不行。與強制獨佔存取的同步不同,const 僅表示線程安全的期望。內部同步必須明確實作。
了解 const 的執行緒安全
範例:執行緒安全區域運算
為了確保具有區域快取的rect 類別中的執行緒安全,必須在內部同步寫入操作,即使是在const 函數內。這尊重了與標準庫的合約。
C 中的關鍵字稀缺
是的,C 的關鍵字數量有限。自誕生以來,這就是一個已知的限制。
結論
雖然const 在與標準庫一起使用時在某種程度上意味著線程安全,但了解其局限性和確保真正線程安全代碼的正確同步。 C 中關鍵字的稀缺性一直限制了它的表達能力。
以上是C 11 中的 const 足以確保線程安全嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!