Why concurrency is necessary
In simpler times, computers had only one CPU and this marginalized the need for concurrency. Hardware manufacturers successfully found ways to make CPUs faster, and this made single-threaded programs faster. But eventually, this had a diminishing return, and manufacturers found they could increase computational power by putting multiple CPUs in a device. From desktops and laptops to servers and smartphones, most hardware nowadays sports multiple CPUs, or cores.
For developers, this is a major disruption in building software and how coding is done. Single-threaded software is easier to code and works fine on a single-core device. But a single-threaded program on a multi-core device will only use one core, leaving the others not utilized. If you want your program to scale, it needs to be coded in a way that utilizes all cores available in a processor.
However, concurrency is traditionally not easy to implement. If you have several independent processes that do not...