C 11 で 'const' を使用するとスレッドが保証されると広く信じられています安全性。ただし、この概念にはさらなる明確化が必要です。
'const' だけではスレッドの安全性は保証されませんが、'const' オブジェクトの操作がスレッド安全であるという標準ライブラリの期待は満たされます。安全。具体的には:
とは異なりますJava の 'synchronized'、'const' は本質的に同期を提供しません。次の例を考えてみましょう。
書き込みでスレッド セーフティのために 'const' を適切に利用するには、可変状態 (キャッシュ領域の値など) が必要です以下に示すように、同期プリミティブによって保護される必要があります。
にもかかわらず'area()' はスレッドセーフですが、'rect' は 'set_size()' での書き込みが保護されていないため、依然として非スレッドセーフのままです。
C 開発者による主張この言語にはその誕生以来、予約語の数が限られているため、キーワードが不足しているというのは真実です。
以上がC 11 の「const」はスレッドの安全性を保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。