There exist well-known problems in programming concurrency and multi-threading such as deadlocks and race conditions that can cause undefined behavior when running such programs.
A race condition is where two or more threads share access to the same data to perform some sort of operation, with no guarantee of the order in which these operations will take place. Simple things such as incrementing a value with a finite amount of iterations concurrently yield random results.
Deadlocks are caused by synchronization mechanisms used to serialize certain operations to ensure they are run in a certain order. The first thread to enter this region acquires an exclusive lock to run this piece of code. Once it's finished the thread releases the lock. Other threads that try to enter this region are forced to wait for the lock to become available again. A deadlock occurs when a thread that acquires a lock never releases it, causing all other threads to wait indefinitely and hang.
This makes me wonder if these sorts of behaviors and issues also exist in the real world outside of software.
The closest analog I could think of is 2 workers sharing a hammer to build a house. They must take turns using the hammer and their work is completely serialized because it is impossible for both to use a hammer at the same time.
But say for example we had an electron and two machines that had the ability to change the spin of the electron - one can change the spin to up, the other can change the spin to down. Let's say we also have a very accurate atomic clock that synchronizes both machines to operate at the same time on an incoming electron. Wwhat sort of behavior would we observe? Would the two operations cancel out? Would the resulting electron spin be random?
Perhaps the atomic clock is not accurate enough, and instead we need to synchronize both machines to 1 Planck Time instead to ensure true parallel operation. Would we observe different behavior?
Another example : Say we have a nuclear reaction involving protons that break off their neutrons. At the same time that a proton is to break off neutrons, another proton nearby releases it's neutrons which collide with the current proton causing it to be captured. Lets say the timing of both of these events is extremely precise as to say they both happen simultaneously. How does the reaction behave?
It seems to me that there must be some predefined order in which simultaneous events occur for causality to remain consistent ($A+B \Rightarrow C$), otherwise you could get results such as ($A+B \Rightarrow D / E / F /...$). In computing terms we have atomic operations that cannot be broken down any further in parallel execution, ensuring consistency. Is there such a thing as a smallest operation in nature that cannot be broken down into smaller steps?
Is causality concurrent in our universe? If so, do race conditions exist in the way causality is propagated through the universe?