Threads and Processes

Process#

A process refers to a program in execution. A process has a Process Control Block which has information such as the process state etc.

Thread#

A thread is a segment of a process. A process may have many threads and these threads can communicate with one another.

Source: GeeksforGeeks

List of Differences#

  1. Processes can take longer to terminate than threads
  2. Processes take a longer time to be created than threads
  3. Processes are less efficient in communication
  4. Processes consume more resources
  5. Processes are isolated whereas threads can share the same memory
  6. Processes are more "heavyweight" compared to threads
  7. Thread switching do not require an interrupt to the kernel
  8. Threads are more efficient in context switching
  9. Threads share the parent's PCB, has its own Thread Control Block and shares a common address space.