can anyone please explain with an example how to synchronize with two SeqCst fences? how to sequence instructions: whether the instruction comes first or the fence?
In general, as an algorithm and data structure designer, you want to be using Release-Acquire pairs of stores and loads. It is a very rare algorithm that actually needs SeqCst.
As an end user, you want to be using data structures like channels and mutexes that have already taken care of synchronization for you.