In computer processing, if a processor changes the value of an operand and then, at a subsequent time, fetches the operand and obtains the old rather than the new value of the operand, then it is said to have seen stale data.
On a uniprocessor, stale data cannot be tolerated. It would mean that the processor violated fundamental expectations about its own behavior. On shared memory multiprocessors, however, it is considered acceptable for machines to generate stale data on operands shared between processes. For such operands, the expectation is that programs will take precautions ( atomic instructions or critical section routine ) to prevent stale data from being seen.