Concurrency and Asynchronous Programming: a Detailed Overview
Asynchronous programming is one of those topics many programmers find confusing. You come to the point when you think you’ve got it, only to later realize that the rabbit hole is much deeper than you thought. If you participate in discussions, listen to enough talks, and read about the topic on the internet, you’ll probably also come across statements that seem to contradict each other. At least, this describes how I felt when I first was introduced to the subject.
The cause of this confusion is often a lack of context, or authors assuming a specific context without explicitly stating so, combined with terms surrounding concurrency and asynchronous programming that are rather poorly defined.
In this chapter, we’ll be covering a lot of ground, and we’ll divide the content into the following main topics:
- Async history
- Concurrency and parallelism
- The operating system and the...