1
java.util.ConcurrentHashMapのソースコードを読んで、ConcurrentHashMap $ HashEntryのnext
フィールドがfinalであることを確認しています。 next
の値を変更するには、追加と削除の2つの操作があります。しかし、この2つの操作は、next
フィールドが最終的なものではなくても安全に実行されます。だから私はなぜnext
フィールドが最終的であるのか理解できません、誰でも私に理由を教えてくれますか?ありがとう。 の(ほとんどの)読み取りが同期なしで行われるため、読み取りスレッドがフィールドの初期値を確認するためには、
、finalはフィールドの初期化された値がスレッドを読むことによって正しく見えるようにします。しかし、なぜHashEntryクラス自体はConcurrentHashMapで最終的なのですか? – AKS