Super informative and well-written. I thought I was interested to learn about how multithreadinging works but I am falling asleep trying to get through this article; that’s on me though! 😅
The way shorter, simpler version is that there are a bunch of distinct parts of the CPU, and a single thread generally isn’t structured in a way that can use all of those parts at once. By having two threads “at once”, you can fill in the gaps where parts aren’t used more efficiently.
This is also why the value of SMT varies based on workloads. Some code just isn’t structured in a way that adding the extra thread helps.