Jakie zalety ma dispatch_sync zsynchronizowane?
Powiedzmy, że chcę uczynić ten kod bezpiecznym dla wątków:
- (void) addThing:(id)thing { // Can be called from different threads
[_myArray addObject:thing];
}
GCD wydaje się preferowanym sposobem osiągnięcia tego:
- (void) addThing:(id)thing {
dispatch_sync(_myQueue, ^{ // _myQueue is serial.
[_myArray addObject:thing];
});
}
Jaką przewagę ma nad tradycyjną metodą?
- (void) addThing:(id)thing {
@synchronized(_myArray) {
[_myArray addObject:thing];
}
}