conroy9,
not entirely true, I think you got confused between
multithread and multiprocess.
Multi-threading is the ability of independent program to
perform more than 1 task at what seems to be the same time.
A task is a computational unit and corresponds to 1 thread.
A program that load data file while also reading
user input is said to have 2 tasks and is therefore multithreaded.
A process is an independent program. A process can contains
more than 1 thread. Processes can also run at the same time.
So what is the different between process and thread ?
Process has its own resources, while thread uses shared
resources (or resource from the process).
Goi is correct, multithreaded programs don't
need multi-processor, best is to use multi-processor
but under one processor it can also simulate 2 or
more threads running at the same time by performing
context switching (for example if you have 2 threads,
first it let first thread to run for maybe 1 millisec,
then let another thread run for the same time,
then switch back to first thread and keep switching,
from user point of view, these two threads appear
to run at the same time).
There are whole lots of discussion on multithreaded, so
you can find a lot of information from the net. Best is
to search from Modern Operation System courses which offered
by many university.