Concurrent computing is a form of computing in which several computations are executing during overlapping time periods concurrently instead of sequentially (one completing before the next starts). This is a property of a system this may be an individual program, a computer, or a network and there is a separate execution point or “thread of control” for each computation (“process”). A concurrent system is one where a computation can make progress without waiting for all other computations to complete where more than one computation can make progress at “the same time”. As a programming paradigm, concurrent computing is a form of modular programming, namely factoring an overall computation into subcomputations that may be executed concurrently. Pioneers in the field of concurrent computing include Edsger Dijkstra, Per Brinch Hansen, and C.A.R. Hoare.