Lock
Un bloqueo (lock) es una primitiva de sincronización que garantiza acceso mutuamente exclusivo a recursos compartidos; sus tipos incluyen mutexes, bloqueos de lectura-escritura y spinlocks.
Propósito
Proteger las secciones críticas frente a carreras de datos: el núcleo de la concurrencia en memoria compartida.
Mecanismo
Mutex: acceso exclusivo, solo un hilo lo posee a la vez. Bloqueo de lectura-escritura: muchos lectores, un solo escritor. Spinlock: espera activa sin dormir. Bloqueo reentrante: el mismo hilo puede adquirirlo repetidamente. Cuidar el orden de bloqueo para evitar deadlock.
Casos de uso
- Sincronización concurrente
- Protección de secciones críticas
- Seguridad de hilos