What is the difference between a process and Thread?
A process is a self-contained running program within its own address space while a Thread is a single sequential flow of control within a process. Each process has its own set of variables where as Threads share the same data. Inter-process communication is much slower and restrictive as compared to inter-thread communication is faster. Creating and destroying Thread is much cheaper in terms of performance overhead as compared to launching a new process.