In
concurrent programming, an operation (or set of operations) is
atomic,
linearizable,
indivisible or
uninterruptible if it appears to the rest of the system to occur instantaneously. Atomicity is a guarantee of
isolation from
concurrent processes. Additionally, atomic operations commonly have a
succeed-or-fail definition—they either successfully change the state of the system, or have no apparent effect.