Concurrent computing is an approach in which multiple calculations are made within an overlapping time frame. It takes advantage of the concept that multiple processes can make progress without waiting for others to complete. Concurrent computing is different than sequential computing, where calculations are made one after the other, and parallel computing, where calculations are made simultaneously.
Concurrent computing techniques can be found in operating systems that support threading and pre-emptive multitasking. They may also be found in computer programming languages where support techniques, such as message passing and promises, are utilized. Concurrent computing can be applied at many different levels of system design including the CPU, the software running on the computer, and the control flow of a network.
The origins of concurrent computing go back as far as the 1800s, when railroad operators needed to develop a way to manage the paths of multiple trains on a single railroad. It had further development in the early 1900s, when telegraph operators needed to manage multiple signals on a single telegraph line.