Practical examples (Complicated)
For AtomicMarkableReference:
https://github.com/arunmoezhi/ConcurrentKaryST
For AtomicStampedReference
https://github.com/arunmoezhi/LockFreeBST
Simple example:
In a binary tree if you want to change a child of a parent node atomically, then compareAndSwap
on an AtomicMarkableReference
can be used.
In a binary tree lets say you want to flag a node atomically. Then AtomicStampedReference
can be used.
The above complicated real life implementations use these two class types.