Sobes.tech
Senior

What is the difference between a process and a thread?

sobes.tech AI

Answer from AI

A process is an instance of a running program that has its own address space, system resources (files, sockets, etc.), and one or more threads of execution.

A thread is a unit of execution within a process that shares memory and resources with other threads of the same process but has its own stack and execution context.

Main differences:

  • Isolation: processes are isolated from each other, while threads within the same process share memory.
  • Resources: a process has its own resources, whereas threads share the process's resources.
  • Creation: creating a thread is usually easier and faster than creating a process.
  • Context switching: switching between threads is faster than switching between processes.

Example in Java:

// Creating a thread within a process
Thread thread = new Thread(() -> {
    System.out.println("Thread is running");
});
thread.start();