seegongsik
Sistemas operativos

Qué es un hilo

Un mismo trabajo se puede dividir en varias hebras que avanzan a la vez en el mismo taller. Esas hebras son los hilos.

01

Una persona con muchas manos

Una cocinera trabaja en la cocina: hierve la sopa mientras corta verduras y de vez en cuando vigila el fuego.
El trabajo es uno, cocinar, pero dentro de él se atienden varias hebras a la vez. Hay una sola cocina y una sola despensa, y se comparten.
Una computadora también puede dividir así el trabajo dentro de una tarea en varias hebras, y a cada una de ellas se le llama hilo.
Si se divide el trabajo en hebras, mientras se espera a que hierva la sopa no hay que quedarse de brazos cruzados: se puede atender otra hebra.

Tarea (cocinar)CocineroHervir sopaCortar verduraVer el fuegoDespensa (compartida)

Un trabajo, muchas hebras dentro. El taller y los ingredientes se comparten.

Los hilos son las varias hebras que avanzan a la vez dentro de una misma tarea.

02

Dos casas ajenas, muchas habitaciones en una casa

Antes dijimos que cada proceso tiene su propio espacio aparte. Dos procesos son como vecinos con una pared en medio: no pueden entrar sin más en casa del otro.
Pero los hilos de un mismo proceso son como una familia que vive en una casa. Las habitaciones están separadas, pero la sala y la nevera se comparten.
Por eso los hilos intercambian información con facilidad: miran la misma despensa. Entre procesos eso cuesta más.
La pared puede parecer un estorbo, pero también es la que mantiene tu casa seca aunque al vecino se le rompa una tubería.

Procesos: paredHilos: compartidodesconocidoscompartidouna familiasala y refri compartidos

Los procesos son vecinos con una pared en medio; los hilos, la familia de una misma casa.

Los procesos usan espacios separados, y los hilos de un mismo proceso comparten espacio.

03

Añadir más hebras

Cambia tú mismo en cuántas hebras se divide una tarea.
Con una sola hebra, el trabajo se hace pieza a pieza. Al añadir hebras, varias partes avanzan a la vez, todas mirando la misma despensa.
Con más hebras, el trabajo puede terminar antes. Pero como todas usan la misma cocina, si hay demasiadas se estorban unas a otras.
Aunque dupliques las hebras, el trabajo no va exactamente el doble de rápido, porque en una cocina estrecha aumenta el tiempo que se pasa apartándose para dejar pasar a los demás.

Despensa (compartida)
Hebra 1
Hebra 2
Hebras2
Agrega hebras y varias partes avanzan a la vez. Pero hay una sola despensa, así que la comparten.

Cambia el número de hebras para ver cómo se divide y avanza una tarea.

Con más hebras avanza más a la vez, pero siguen compartiendo el mismo espacio.

04

Compartir es rápido, pero

Que los hilos compartan la despensa es una gran ventaja: no hace falta llevar ni copiar nada aparte, miran directamente lo mismo, así que es ligero y rápido.
Pero tiene otra cara. Si dos hebras tocan el mismo ingrediente en el mismo instante, pueden chocar, como cuando una echa sal y la otra también la echa.
Así que compartir es cómodo, pero hay que tener cuidado con quién toca qué y cuándo. Esta historia sigue un poco más adelante, en la lección sobre la condición de carrera.
Aun así se elige compartir, porque dar a cada hebra su propia copia de la despensa sería más pesado y más lento.

VentajaDespensaVer lo mismo es ligero y rápidodos carasCuidadoTocar a la vez choca

Compartir es ligero y rápido, pero tocar lo mismo a la vez provoca choques.

Compartir un espacio es rápido y ligero, pero tocar lo mismo a la vez puede causar problemas.

05

Resumen en una página

Solo hay que recordar tres cosas.
Primera: los hilos son las varias hebras de una misma tarea; el trabajo es uno, pero dentro avanzan varias partes a la vez.
Segunda: comparten el mismo espacio. Entre procesos hay paredes, pero los hilos de un mismo proceso miran la misma despensa. Tercera: por eso son ligeros y rápidos, pero piden cuidado, porque tocar lo mismo a la vez puede provocar choques.
Con estas tres ideas se entiende por qué algunas apps responden sin congelarse: una hebra mueve la pantalla mientras otra trabaja en silencio en segundo plano.

Uno
Los hilos son varias hebras dentro de una tarea. El trabajo es uno, pero varias partes avanzan a la vez.
Dos
Comparten el mismo espacio. Los procesos tienen pared, los hilos miran la misma despensa.
Tres
Ligero y rápido pero con cuidado. Tocar lo mismo a la vez puede chocar.

Varias hebras en una tarea, espacio compartido, ligero pero con cuidado.

En una líneaLos hilos dividen una tarea en varias hebras que avanzan juntas en el mismo espacio.
← Sistemas operativos
¿Te fue útil? Apoyar seegongsik