1 Introducing concurrency
In this chapter
- You learn why concurrency is an important topic worth studying
- You learn how to measure the performance of the systems
- You learn that there are different layers of concurrency
1.1 We live in the concurrent world
Look out of the window and take a moment to observe the world around you. Do you see the world moving in a linear, sequential fashion? Or do you see a complex web of interacting, independently behaving pieces all happening at the same time?
Although people tend to think sequentially – like going through to-do lists, doing things step by step, one step at a time, the reality is that the world is much more complex than that. It is not sequential but rather concurrent. Interrelated events are happening simultaneously. From the chaotic rush of a busy supermarket to the coordinated moves of a football team, to the ever-changing flow of traffic on the road, concurrency is all around us. Just as in the natural world, your computer needs to be concurrent to be suited for modeling, simulating, and understanding complex real-world phenomena.
Concurrency in computing allows a system to deal with more than one task at a time. This could be a program, a computer, or a network of computers. Without concurrent computing, our application would not be able to keep up with the complexity of the world around us.