DEV Community

Cover image for Process vs Thread
Haindavi-Saraswathi
Haindavi-Saraswathi

Posted on

Process vs Thread

The entire world of applications revolves around scaling and performance speed — but where does it all begin?

It all starts right here — with processes and threads.

To understand a process, we first need to go one step back and look at what a program actually is.


Program

A computer isn’t human — it can’t think or decide on its own. We have to give it clear instructions to perform any task.

These sets of instructions are what we call a program.

But how do we give these instructions? In what form? And how does the machine actually run them?

From code to CPU , below picture shows how your program comes alive.

Let’s say you write a simple Python program to print “Hello, World!”<br>
It begins as code — just a text file with instructions written in Python.<br>
When you run it (python hello.py), Python translates the code and loads it into memory as a process.<br>
Then, the CPU executes those instructions — interpreting and printing the message.<br>
Finally, you see “Hello, World!” appear on your screen.

Now that our program is running, let’s talk about what it has become — a process.



Process:

A process is simply a program in execution.
It’s not just the code anymore — it’s the code + the resources the operating system gives it to run.

When a process starts, the OS sets up everything it needs:

  • Memory space – where it stores variables, data, and instructions.
  • CPU time – the processor cycles it gets to actually run.
  • File handles and I/O – to read files, print output, or talk to the network.
  • Process ID (PID) – a unique number so the OS can track it. Every process lives inside its own isolated environment — it can’t directly access another process’s memory. 


Okay, so my process is running and it has a bunch of instructions to execute.Should I wait for them to run one by one… or can I somehow speed things up?

That’s where threads come in.


Thread:

A thread is the smallest unit of execution inside a process — like a lightweight worker that helps your program do multiple things at the same time.

A thread is “lightweight” because it takes less memory, less setup, and less time for the OS to manage compared to a process.

When a program starts, it begins with one thread, the main thread.
From there, you can create additional threads to perform other tasks simultaneously.


Each thread has:

  • Its own stack (to keep track of function calls and local variables)
  • Its own instruction pointer (to know which line of code it’s running)
  • Shared access to the process’s memory (heap, global variables, files, etc.)

Process vs Thread

Aspect Process Thread
Definition A program in execution. A lightweight unit of execution inside a process.
Memory Space Has its own memory space — fully isolated. Shares memory with other threads in the same process.
Creation Cost High — needs new memory and OS resources. Low — shares process resources; only needs its own stack/registers.
Communication Via Inter-Process Communication (IPC) — slower. Via shared memory — faster but needs synchronization.
Crash Impact One process crashing doesn’t affect others. If one thread crashes, it can crash the entire process.
Context Switching Slower — switches entire process context. Faster — switches only registers and stack.
Isolation Strong isolation — safer, but uses more memory. Weak isolation — faster, but risk of race conditions.
Use Case Running independent apps or services. Running parallel tasks within the same app.
Scaling Approach Horizontal scaling — multiple processes across CPU cores, containers, or machines for reliability and load balancing. Vertical scaling — multiple threads inside one process to use CPU cores efficiently for concurrent tasks.
Performance More reliable under load; startup is heavier. Higher throughput for shared-memory tasks; needs careful synchronization.
Examples Chrome launching each tab as a separate process; microservices architecture. Each Chrome tab’s renderer thread; thread pools in Java or Node.js workers.

Restaurant Analogy:

Imagine your computer as a restaurant.
The recipe is your program — a set of written instructions waiting to be cooked.

Once the cooking begins, it becomes a process — an active kitchen with its own space, tools, and ingredients.

Inside that kitchen, several chefs (threads) work together on different parts of the dish — one boils pasta, another stirs sauce — all sharing the same kitchen.

That’s how each process can have multiple threads, working in parallel to serve the dish faster.

Top comments (2)

Collapse
 
saisrikark profile image
Sai Srikar Komaravolu

ABSOLUTELY BRILLIANT

Collapse
 
saisrikark profile image
Sai Srikar Komaravolu

MIND BLOWING