Is synchronization needed while reading if no contention could occur

Rather than wonder, why not just use the atomic references in java.util.concurrent?

(and for what it's worth, my reading of happens-before does not guarantee that Thread2 will see changes to mutable unless it also uses synchronized ... but I always get a headache from that part of the JLS, so use the atomic references)


It will be fine if you make mutable volatile, details in the "cheap read-write lock"