How would you explain the difference between a Process and a Thread?
✅ Answer:
I would define them based on their relationship to resources and execution. A Process is an independent program in execution with its own dedicated memory space (stack, heap, and registers). Because processes are isolated, they don't interfere with each other, but communicating between them (IPC) is resource-heavy.
A Thread is a "lightweight" unit of execution that lives inside a process. Multiple threads share the same memory space and resources of their parent process. This makes communication between threads very fast and efficient, but it also introduces risks like "Race Conditions," where two threads try to modify the same data at the same time.
In short: A process is the container, while threads are the workers inside that container. If a process crashes, it doesn't affect others; but if a thread crashes in a way that corrupts shared memory, it can take down the entire process.