Recently when I was reading about lock-less programming, I came across 'Atomic operations'. I started digging deep into it. All links explain how to write atomic operations and their usages.
However, I am looking for some details on atomic operations.
- Do atomic operations need any hardware capabilities?
- Do languages provide APIs for it? if yes, how are atomic APIs implemented?
- Are these limited only to kernel space programming, or are they available for user-space programming too?