Welche Vorteile hat dispatch_sync gegenüber @synchronized?
Nehmen wir an, ich möchte diesen Code threadsicher machen:
- (void) addThing:(id)thing { // Can be called from different threads
[_myArray addObject:thing];
}
GCD scheint der bevorzugte Weg zu sein, um dies zu erreichen:
- (void) addThing:(id)thing {
dispatch_sync(_myQueue, ^{ // _myQueue is serial.
[_myArray addObject:thing];
});
}
Welchen Vorteil hat es gegenüber der herkömmlichen Methode?
- (void) addThing:(id)thing {
@synchronized(_myArray) {
[_myArray addObject:thing];
}
}