La mia applicazione fa un uso pesante di GCD e quasi tutto è suddiviso in piccole attività gestite da dispacci. Tuttavia, il modello di dati sottostante è principalmente letto e solo occasionalmente scritto.Blocco lettura-scrittura con GCD
Attualmente utilizzo blocchi per impedire modifiche alle strutture di dati critiche durante la lettura. Ma dopo aver esaminato i blocchi ancora oggi, ho trovato NSConditionLock e qualche pagina sui blocchi di lettura-scrittura. Quest'ultimo è esattamente ciò di cui ho bisogno.
Ho trovato questa implementazione: http://cocoaheads.byu.edu/wiki/locks. La mia domanda è: questa implementazione funzionerà con GCD, visto che usa PThreads?
Ah, avevo letto delle barriere, ma al momento non riuscivo a pensare ad un'applicazione pratica (ho usato a malapena il multithreading allora) e ho dimenticato tutto di loro. Grazie, proverò a vedere se posso usarlo! –
Mike Ash fornisce anche un buon esempio di come eseguire la sincronizzazione lettore-scrittore tramite GCD. http://www.mikeash.com/pyblog/friday-qa-2011-10-14-whats-new-in-gcd.html –