Вложенные синхронизированные блоки в Objective-C
Я где-то читал код, в котором используются несколько идентичных синхронизированных блоков, например:
@implementation Test {
NSObject var;
}
- (void)method1 {
@synchronized(self) {
@synchronized(var) {
...
}
}
}
- (void)method2 {
@synchronized(self) {
@synchronized(var) {
...
}
}
}
В чем причина создания вложенной синхронизации self и var таким образом? Не достаточно ли @synchronized для одного var?