Instructions in a program are run by a central processing unit (CPU). This CPU can run multiple threads, which can process instructions for separate tasks, together. This is achieved by switching between the two tasks and executing the instructions in an alternating fashion, like pulling together two sides of a zipper. This overlapping execution of tasks is called concurrency. For the sake of simplicity, we will describe it as performing multiple tasks at the same time. The following diagram shows how it may appear:
Concurrency should not be confused with parallelism, where two things or instructions can literally be executed at the same time.
By introducing a concurrent architecture to your web scraper, you will be able to make multiple web requests to different sites without waiting for one site to respond. In this way, a slow site or bad connection to...