stan412 :
Thanks for all your continued responses!
I know what I'm about to ask is not really relevant to this thread but, does having a Dual-core CPU really necessary? I mean, hopefully Win7 will really BE the anti-Vista and be not a resource-hog...I do have a 512MB video card...
<Gross Oversimplification Alert> Trying to explain a VERY complicated subject... Helpful responses are hugely welcomed. Keep in mind the OP is not an "IT" person, but a regular user.
Think of it this way: A single core processor is the equivalent of one
(really fast) person available to work. When there's multiple tasks, that individual has to constantly switch back and forth.
If you have two people, you can split the work into logical parts and divide it up. So one guy can concentrate on an important job, while the other one may handle all the peripheral stuff. Adding more people can allow you to do more 'Jobs' at the same time. Multithreading is a way to get one person (Core) to do more than one task "at once". Simple and logical, right?
The current limitation in computer terms is that most programs were written for one. So many of the programs we have now will only use one "Worker". A simple example might be you have a very single minded person who washes cars. He gets the water, gets the soap, gets the sponge, examines the car to decide where to start, washes, rinses, dries, etc... But like I said: He's simple and single minded. So he does it all himself, in the same order, every time. He doesn't know any better, and can't learn or change.
If you have more than one of these guys, you can wash more than one car at once. Otherwise, one car gets fully washed before the worker moves on to the next. More "Cores" mean more single-minded workers to do more tasks at the same time. In this context, the Operating System plays traffic cop and helps organize what gets done where.
In computer terms, a "Multithreaded" program would divide at least some of the work into other processes that can be done elsewhere. For example: We'll create a "method" called "Fetch_More_Water" and a condition where "If Water is less than 2, then Fetch More". If this is independent of the guy who does the washing, you can give it to "Little_Brother" and make him go get more water.
This is what "Multithreading" is - One program can get split up into logical parts, which can be performed independently. In my example, it doesn't matter when the water arrives just so long as there's more than 1 available at all times, right? But if the side process was "Dry_The_Car", then it matters when that happens. This is called "Concurrency", and while my example is VERY VERY simple, this is the underlying reason why it's very hard to write true multithreaded programs: Managing all of the little tasks in terms of if and when they occur in relation to all the other tasks that may or may not be running at that moment.
Bringing this back to "Should I get a Multi~Core Processor": Understand that while *YOU* may only be playing one game at that moment, your computer has more to do then just play your game. It has to switch back and forth between your game and everything else. With a multi core CPU, the operating system can decide that the first Core can concentrate on your game, while the other one does the other stuff. And the more stuff you run at once - game, voice communications, Music, browser, temperature monitiring program, etc etc etc.... - the more you'll benefit from having more than one processor core.