Process means a program in execution. | Thread means a segment of a process. |
A process takes more time to terminate. | A thread takes less time to terminate. |
It takes more time for creation. | It takes less time for creation. |
It also takes more time for context switching. | It takes less time for context switching. |
A process is less efficient in terms of communication. | Thread is more efficient in terms of communication. |
Multiprogramming holds the concepts of multi-process. | We don't need multi programs in action for multiple threads because a single process consists of multiple threads. |
Every process runs in its own memory. | Threads share memory. |
A process is heavyweight compared to a thread. | A Thread is lightweight as each thread in a process shares code, data, and resources. |
Process switching uses an interface in an operating system. | Thread switching may not require calling involvement of operating system. |
If one process is blocked, then it will not affect the execution of other processes. | If a user-level thread is blocked, then all other user-level threads are blocked. |
A process has its own Process Control Block, Stack, and Address Space. | Thread has Parents' PCB, its own Thread Control Block, and Stack and common Address space. |
Changes to the parent process do not affect child processes. | Since all threads of the same process share address space and other resources so any changes to the main thread may affect the behavior of the other threads of the process. |
A system call is involved in it. | No system call is involved, it is created using APIs. |
A process does not share data with each other. | Threads share data with each other. |