Concurrency

Concerrency is a situation in which several computations (execution paths) are executing simultaneously, and potentially interacting with each other. Concurrent use of shared resources can be a source of indeterminacy leading to issues such as deadlocks, and starvation. It is a major topic in modern operating system design, and in multi-threaded user applications.

Getting Started
As a result of concerrency implications, code with simultaneous execution pathes must be reentrant — it must be capable of running in more than one context at the same time. Data structures must be carefully designed to keep multiple threads of execution separate, and the code must take care to access shared data in ways that prevent corruption of the data.