# Núcleos e hilos

> Por qué una CPU es en realidad varios procesadores, y cómo atiende todavía más tareas.

- Nivel: Intermedio
- Temas: Hardware
- URL: https://tidbit.legios.com.ar/es/cpu-cores-and-threads/
- En inglés: [Cores and threads](https://tidbit.legios.com.ar/cpu-cores-and-threads/)

Un **núcleo** (core) es un procesador completo: puede buscar instrucciones y ejecutarlas por su cuenta. Durante décadas una CPU tenía uno. Desde mediados de los 2000, los fabricantes ponen varios núcleos en el mismo chip en vez de hacer un único núcleo cada vez más rápido, así que el procesador de una laptop puede tener 8 o más y el de un servidor varias decenas. Cada núcleo puede correr un programa distinto, o una parte distinta del mismo programa, al mismo tiempo.

Un **hilo** (thread) es una secuencia de instrucciones esperando ser ejecutada. El software crea hilos, el sistema operativo se los reparte a los núcleos, y salta entre ellos tan rápido que parece que decenas de apps corren a la vez. Muchas CPUs además ofrecen **multihilo simultáneo** (SMT; Intel lo llama **Hyper-Threading**): cada núcleo se presenta como dos, así puede avanzar con un segundo hilo mientras el primero espera datos. De ahí salen especificaciones como "8 núcleos, 16 hilos". Los dos hilos comparten la maquinaria de un mismo núcleo, así que es una mejora útil, no el doble de velocidad.

Más núcleos ayudan solo cuando el trabajo se puede dividir. Renderizar video, compilar código o atender los pedidos de muchos usuarios en un servidor se dividen bien, y van mucho más rápido con más núcleos. Una cadena larga de pasos, donde cada paso necesita el resultado del anterior, no se puede dividir, y corre a la velocidad de un núcleo. Por eso importan tanto la cantidad de núcleos como la velocidad de cada uno.

## Una analogía

Los núcleos son cocineros en una cocina; los hilos, las comandas colgadas. Hyper-Threading es un cocinero que maneja dos sartenes, revolviendo una mientras la otra se calienta. Diez cocineros no hacen que un soufflé suba más rápido.

## Para quedarse

- Un núcleo es un procesador independiente; las CPUs modernas tienen varios o muchos.
- Un hilo es una fila de instrucciones que el sistema operativo asigna a un núcleo.
- El multihilo simultáneo deja que un núcleo atienda dos hilos, compartiendo sus partes.
- Más núcleos aceleran el trabajo divisible, no las tareas en cadena.

## Para seguir leyendo

- [Procesador multinúcleo en Wikipedia](https://es.wikipedia.org/wiki/Procesador_multin%C3%BAcleo)
- [Hilo (informática) en Wikipedia](https://es.wikipedia.org/wiki/Hilo_(inform%C3%A1tica))
- [HyperThreading en Wikipedia](https://es.wikipedia.org/wiki/HyperThreading)

## Términos relacionados

- [CPU](https://tidbit.legios.com.ar/es/cpu/): El chip que ejecuta tus programas, una instrucción tras otra, muy rápido.
- [Chip](https://tidbit.legios.com.ar/es/semiconductor-chip/): Un pedacito de silicio con miles de millones de interruptores que calculan y recuerdan.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [Sistema operativo](https://tidbit.legios.com.ar/es/operating-system/): El software base que maneja un dispositivo y reparte su hardware entre todas las apps.
- [Intel](https://tidbit.legios.com.ar/es/intel/): La empresa estadounidense detrás de la mayoría de los procesadores de PC y servidores.
