Вложенные синхронизированные блоки в Objective-C

Я где-то читал код, в котором используются несколько идентичных синхронизированных блоков, например:

@implementation Test {
  NSObject var;
}

- (void)method1 {
  @synchronized(self) {
    @synchronized(var) {
     ...
    }
  }
}

- (void)method2 {
  @synchronized(self) {
    @synchronized(var) {
     ...
    }
  }
}

В чем причина создания вложенной синхронизации self и var таким образом? Не достаточно ли @synchronized для одного var?

0 ответов

Другие вопросы по тегам