Sincronización
El problema de la sincronización de hilos tiene lugar cuando varios hilos intentan acceder al
mismo recurso o dato. A la hora de acceder a datos comunes, los hilos necesitan establecer
cierto orden, por ejemplo en el caso del productor consumidor. Para asegurarse de que hilos
concurrentes no se estorban y operan correctamente con datos (o recursos) compartidos, un
sistema estable previene la inanición y el punto muerto o interbloqueo. La inanición tiene lugar
cuando uno o más hilos están bloqueados al intentar conseguir acceso a un recurso compartido
de ocurrencias limitadas. El interbloqueo es la última fase de la inanición; ocurre cuando uno o
más hilos están esperando una condición que no puede ser satisfecha. Esto ocurre muy
frecuentemente cuando dos o más hilos están esperando a que el otro u otros se desbloquee,
respectivamente.
A continuación se presenta un ejemplo, el problema del Productor/Consumidor, con la
intención de explicar de una forma más práctica el concepto y las situciones de sincronización
de hilos.