Looking deeper into threads
Before we dive into the nuances, let's discuss what kinds of problems threads can solve.
In your laptop, you have a CPU with multiple cores – probably four of them, or even eight. This means that it can do four different computations in parallel, which is pretty amazing considering that 15 years ago, a single-core CPU was the default and even two cores were only for enthusiasts.
But even back then, you were not limited to doing only a single task at a time, right? You could listen to music and browse the internet at the same time, even on a single-core CPU. How does your CPU manage to pull that off? Well, the same way your brain does. It juggles tasks. When you're reading a book while listening to your friend talking, part of the time, you're not reading, and part of the time, you're not listening – that is, until we get at least two cores in our brains.
The servers you run your code on have pretty much the same...