Until recently, concurrent programming required, instead of multiple threads, multiple processes, each with a single thread of execution, running concurrently on a multitasking operating system. Multithreading is a way to design and implement parallel application programs. The major difference between a thread and a process is in common address space. Threads have the same address space which makes communication and data sharing among threads efficient. The goal of multi threaded programming concept is to achieve a greater speed from multiprocessor computers