What is concurrency and how it is achieved in software?
Concurrency in software engineering means the collection of techniques and mechanisms that enable a computer program to perform several different tasks simultaneously, or apparently simultaneously.
To achieve this, new features needed to be added to both hardware and software.
Eg: The operating system of any computer (e.g., Windows, UNIX, Linux) makes use of concurrency to enable the user to do several different things simultaneously or to allow many different users to access the computer at the same time. Many operating systems allow a large number of tasks to be run concurrently and the simultaneous use of peripheral devices.