Threads are also known as lightweight processes. But if we go into the depth then we can know that a thread is not actually a process rather than it provides ways for executing different parts of a program. Now lets discuss what actually means by multithreading. Multithreading (as name suggests multi+threading) is nothing but efficient execution of multiple threads at a time to enhance the performance of the application. For example : We are doing a file copy operation with a status bar on UI indicating the completion percentage. Here we need to keep track of how much file size is copied and at the same time we also need to advance the progress bar accordingly. This thing one can't do efficiently in a single thread and you have to go for multiple threads.
The above one is just an example where we are forced for multithreading but when we are not forced also we can go for this choice for the betterment of the application performance. And of course that all depends on how effectively the thread is implemented in an application. Most of the developers don't use to write multithreaded applications and continue with a single thread. But the efficient use of threads can give birth to a highly powerful application.
Want to know more on Multithreading? Please go through the following link. http://aspalliance.com/1028_Multithreading_with_an_Example_of_NET_Application