Wie implementiere ich einen Wiedereintritts-Sperrmechanismus durch Dispatch Concurrent Queue (GCD)?

Ich habe gerade gelesendieser Beitragund seine Lösung scheint zu überzeugen:

Die serielle Warteschlange wird zum Synchronisieren des Zugriffs verwendetdispatch_get_specific / dispatch_set_specific wird verwendet, um die Wiedereintrittsfähigkeit bereitzustellen.

Was mich interessiert, ist, ob es möglich ist, dieses Schema voranzutreiben, um einen Wiedereintrittsverriegelungsmechanismus für zu implementierenWarteschlange für gleichzeitigen Versand (Jeder Lesevorgang erfolgt mit dispatch_sync, der Schreibvorgang erfolgt mit dispatch_barrier_async, wie beschriebensiehe hier "Eine Ressource, mehrere Leser und ein einzelner Schreiber").

P.S. Ich denke, ich habe es geschafft, dies mit zu implementieren[NSThread currentThread].threadDictionary Hier, aber ich beschäftige mich nicht gern mit[NSThread currentThread] da verlasse ich mich auf gcd. Ist es möglich, die Verwendung von zu ersetzen?[NSThread currentThread].threadDictionary mit einigen kniffligendispatch_set_specific/dispatch_get_specific Code?