Мне действительно нравится @ synchronized-construct вместо использования NSLocks, когда я хочу, чтобы структура данных читалась или записывалась только одним потоком за раз. Однако, когда я хочу изменить весь объект, над которым мы @synchronizing, я не уверен, подходит ли @synchronized. Я хочу знать, работают ли они одинаково:
// version 1:
// segment 1:
@synchronized(self.obj) {
self.obj = obj2;
}
// segment 2:
@synchronized(self.obj) {
// some other stuff
}
// version 2:
// segment 1:
[objLock lock];
self.obj = obj2;
[objLock unlock];
// segment 2:
[objLock lock];
// some other stuff
[objLock unlock];