III. Concurrencia, Hilos y Sincronización

¿Qué es un Hilo?

Un hilo es la unidad mínima de ejecución dentro de un proceso. Comparte memoria y recursos con su proceso padre, lo cual permite paralelismo y comunicación rápida.

Ventajas del uso de Hilos

  • Menor uso de recursos.
  • Mayor rendimiento en sistemas multiprocesador.
  • Comunicación más rápida entre tareas.
  • Mejor capacidad de respuesta en aplicaciones.

Diferencia entre Proceso e Hilo

Proceso: Tiene memoria propia y mayor carga para el sistema.

Hilo: Comparte la memoria y recursos del proceso padre; es más ligero y rápido.

Manejo de Problemas de Concurrencia

  • Condición de carrera: dos hilos acceden simultáneamente a un recurso crítico, generando resultados incorrectos.
  • Interbloqueo (Deadlock): dos o más hilos quedan esperando recursos entre sí, sin avanzar.

Problema Productor-Consumidor

Un productor genera elementos y los coloca en un buffer; un consumidor los retira. Requiere sincronización para evitar desbordes y lecturas inválidas.

Haz clic para ver ejemplo

Sincronización

  • Semáforo: contador que controla acceso a recursos compartidos.
  • Mutex: permite acceso exclusivo a una sección crítica.
  • Monitor: estructura que gestiona sincronización automáticamente.