I’ve been fascinated by the idea that a computer could potentially do more than one thing at the same time since before I got my hands on my first Pentium Pro back in the 90’s. I was so fascinated by this concept, I decided to build a Dual Processor Pentium III machine as soon as it became reasonably affordable for 20-year old kid to have one in his home. I was fascinated by the idea of unlocking the potential of this second processor and predicted that maybe one day, all home computers would have multiple processors, or multiple cores on a single processor. I was right.
I generally obsess over threads and multi-processing, and now I run multiple machines with both Intel i7 processors (8 virtual cores) and AMD chips featuring 8 integer cores coupled with 4 floating point cores. It can be quite the challenge to take full advantage of 8 cores. You really need to have something significant for each core to do. Additionally, unless you’re smart about your threading, you can waste valuable CPU cycles and time just creating and destroying threads. Continue reading “A universally useful Thread class without all the guesswork.”