I think I need a clear definition of multi-threading and SMP systems.
Internet Explorer is a multi-threaded appliction. Right now as I am typing this with one IE window open, IE is running 21 threads. It is a multi-threaded application. Yet its not SMP capable.
I have been told over and over again that an application simply has to be multi-threaded to be SMP capable.
Another example, Winamp, playing a single track, sitting in my sys-tray is running 7 threads, yet its not SMP capable, or SMP aware.
Now a game like half-life.. I've never tried to see how many threads its running at a time, but im definatly sure it runs more then one. If it didnt, you wouldnt be able to have video, sound, and networking running at the same time. You need a thread for each job.. not? Half-Life is NOT SMP capable.
Quake 3 and Quake 3 based games run many threads. It IS an SMP capable application. Quake 3 IS a multi-threaded application.
As I've been told, to take advantage of SMP, an application needs to be multi-threaded. Very rarely is 'SMP Capable' mentioned.
The way I see it, is an application must be multi-threaded, AND SMP Capable. (It needs to be programmed to support SMP)
So which is true? Any application that runs more then one thread can use multiple processors?