thread

The smallest sequence of programmed instructions that can be managed independently by a scheduler.

A thread is a component of a process. Multiple threads can exist within the same process, sharing resources such as memory, while executing independently. Threads are 'lightweight' because context switching between them is faster than between processes since it doesn't require switching the memory context.

        graph LR
  Center["thread"]:::main
  Rel_assembly_language["assembly-language"]:::related -.-> Center
  click Rel_assembly_language "/terms/assembly-language"
  Rel_cpu_cache["cpu-cache"]:::related -.-> Center
  click Rel_cpu_cache "/terms/cpu-cache"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Knowledge Check

1 / 1

🧒 Explain Like I'm 5

If a [process](/en/terms/process) is a kitchen, then threads are multiple chefs working in that same kitchen. They share the same fridge and stove, but each chef is focused on a different part of the meal (like one making salad and another making pasta).

🤓 Expert Deep Dive

Threads share the heap but have their own stack and program counter. Hyper-threading allows a single physical CPU core to act as two logical cores by maintaining two sets of architectural states. Thread safety (mutexes/locks) is required to prevent race conditions when multiple threads access shared memory.

📚 Sources