Mi aplicación hace un uso intensivo de GCD, y casi todo se divide en tareas pequeñas manejadas por despachos. Sin embargo, el modelo de datos subyacente es principalmente leído y solo ocasionalmente escrito.Bloqueo de lectura y escritura con GCD
Actualmente utilizo bloqueos para evitar cambios en las estructuras de datos críticas durante la lectura. Pero después de buscar más bloqueos hoy, encontré NSConditionLock y alguna página sobre bloqueos de lectura y escritura. Esto último es exactamente lo que necesito.
Encontré esta implementación: http://cocoaheads.byu.edu/wiki/locks. Mi pregunta es, ¿funcionará esta implementación con GCD, ya que usa PThreads?
Ah, había leído sobre las barreras, pero en ese momento no podía pensar en una aplicación práctica (Apenas usé multihilo en aquel entonces) y olvidé todo sobre ellas. Gracias, intentaré ver si puedo usar eso. –
Mike Ash también proporciona un buen ejemplo de cómo lograr la sincronización lector-escritor usando GCD. http://www.mikeash.com/pyblog/friday-qa-2011-10-14-whats-new-in-gcd.html –