¿Qué ventaja (s) tiene dispatch_sync sobre @synchronized?
Digamos que quiero hacer este código seguro para subprocesos:
- (void) addThing:(id)thing { // Can be called from different threads
[_myArray addObject:thing];
}
GCD parece ser la forma preferida de lograr esto:
- (void) addThing:(id)thing {
dispatch_sync(_myQueue, ^{ // _myQueue is serial.
[_myArray addObject:thing];
});
}
¿Qué ventaja (s) tiene sobre el método tradicional?
- (void) addThing:(id)thing {
@synchronized(_myArray) {
[_myArray addObject:thing];
}
}