A Process:
A process is the carrying out of a program that allows you to perform the program's actions specified. The operating system helps you to schedule, create, and terminate the processes that are used by the CPU. When a process is loaded into memory, it contains all the resources required to perform the actions necessary. These resources include mainly registers, a program counter and a stack. The register holds the data, such as instructions needed by the Process, in the CPU. There is a program counter to keep track of where the computer program is with completing the actions. Finally, a stack holds the data of the active subroutines of the program.
A Thread:
A Thread is a unit of execution that forms part of a process. A Thread cannot contain a Process. However, a Process can have multiple Threads that are performed at relatively the same time. Threads are lightweight, as they have their own stack and are self-sufficient. Unlike Processes, if there is a problem with one of the Threads, it will affect other Threads and can cause Process issues.
Multithreading:
Multithreading refers to multiple Threads being executed by an operating system. Or simply, two or more Threads of the same Process are running simultaneously.
What's the Difference?
- Process means a program is in execution, whereas Thread means a segment of a process.
- A Process takes more time for creation than a Thread.
- A Process takes more time to terminate than a Thread.
- A Process is not Lightweight, whereas Threads are Lightweight.
- A Process does not share data, whereas Threads share data with each other.