By Memory semantics and model, we understand it by instruction reordering and cache flush/updates around barrier. In the Varhandle class Java, dey have introduced many memory semantics but will little explanation what exactly it does?? I have below question and clarifications required ->
a) Are plain set and get are like normal memory access with no memory ordering restriction and also no visibility gurantee??? b) Opaque memory semantics -> what exactly it does?? Is it a simple memory read and write to main memory(no cache involved) without any memory ordering restriction around it??? Documentation says -> it guarantees ordered access of the same variable for a single thread. c) Difference between aquire/release and volatile??
Thanks