Sobes.tech
Middle+

¿Qué puede contarme sobre el problema del lector-escritor?

sobes.tech AI

Respuesta de la IA

El problema de lector-escritor surge cuando varios hilos acceden simultáneamente a un recurso compartido, donde algunos solo leen datos (lectores) y otros los modifican (escritores).

La tarea principal es garantizar:

  • Lectura simultánea por varios lectores sin bloqueos (para aumentar el rendimiento).
  • Evitar el acceso simultáneo de un escritor con otros escritores o lectores, para prevenir condiciones de carrera y datos inconsistentes.

Para ello, se utilizan mecanismos de sincronización especiales — bloqueos de lector-escritor (Reader-Writer locks). Estos permiten:

  • Que varios hilos puedan leer simultáneamente.
  • La escritura se realiza de forma exclusiva, bloqueando a otros.

Esto mejora el rendimiento en comparación con los mutex normales, que bloquean completamente el acceso.

En iOS/Swift, para tareas similares, se puede usar DispatchQueue con barreras (barrier), o NSLock/pthread_rwlock_t para implementar bloqueos de lector-escritor.