pops117: There's a misunderstanding going on between us I feel :D
I never implied the number of threads you could run on a processor was limited by it's amount of cores. If all processor cores are busy the remaining threads will have to wait their turn.
We are in agreement there ;).
pops117: It's quite simple: because more cores=faster system it's as simple as that. (I feel I will get burned for that :P, if you put it into perspective it will appear faster and more responsive)
Well, yes, multi-core = additional CPU power as long as you can multi-task.
However, virtual CPU = 1 core supporting 2 threads...
I fail to see this as revolutionary as I've taken this for granted since the event of threads (which first appeared on single core CPUs).
Now, crackedegg implies that there is some multi-threading support at the hardware level for 1 core... so the main implication would be a faster context switch between threads and that's it?
pops117: Running a browser with multiple tabs open, another window with graphic tools is open, while a game is playing in the background, listening at music at the same time, wordprocessor is open, calculation go on in the background... you switch back and forth between them. You can't do that on a single core processor without expecting huge lag resulting in the system freezing.
Yes, more powerful implies that you can do more with it. In this case, more power without the system being overwhelmed with the task.
However, stability implies the ability to run a long time without crashing and to handle more scenarios gracefully.
Multi-threaded programs have more bugs (this isn't an 'if', its a reality) and are therefore less stable.
In theory, it wouldn't make a difference for a perfect programmer, but people coding software are human.
pops117: But on a single core machine these threads will have to be computed in sequential order, with RAM you can write different locations at the same time... not so much with a Hard Drive. But multithreading falls short if you only have 1 core at disposition.
Usually, read/writes on permanent storage devices such as hard disks are SLOW.
Read/writes on temporary storage devices like RAM tends to be MUCH FASTER.
If you have 2 tasks that need to be done, one which involves the hard disk and the other involving the RAM only, you don't want the task involving the RAM only to have to wait for the task involving the hard disk.
There is some concurrency there even on a single core CPU in that the CPU/RAM can do some work while the hard disk is busy.