A process refers to a program in execution. A process has a Process Control Block which has information such as the process state etc.
A thread is a segment of a process. A process may have many threads and these threads can communicate with one another.
- Processes can take longer to terminate than threads
- Processes take a longer time to be created than threads
- Processes are less efficient in communication
- Processes consume more resources
- Processes are isolated whereas threads can share the same memory
- Processes are more "heavyweight" compared to threads
- Thread switching do not require an interrupt to the kernel
- Threads are more efficient in context switching
- Threads share the parent's PCB, has its own Thread Control Block and shares a common address space.