The main difference between Threads and Process is as under:
THREADS:
1. Threads share the address space of the process that created it.
2. Threads have direct access to the data segment of its process
3. Threads can directly communicate with other threads of its process.
4. Threads have almost no overhead
5. New threads are easily created
6. Threads can exercise considerable control over threads of the same process
7. Changes to the main thread (cancellation, priority change, etc.) may affect the behavior of the other threads of the process
PROCESS:
1. Processes have their own address.
2. Processes have their own copy of the data segment of the parent process.
3. Processes must use interprocess communication to communicate with sibling processes.
4. Processes have considerable overhead.
5. New processes require duplication of the parent process.
6. Processes can only exercise control over child processes.
7. Changes to the parent process do not affect child processes.