Подтвердить что ты не робот

Objective-c: @synchronized, как это работает?

У меня есть два метода

-(void) a {
   @synchronized(self) {
      // critical section 1 
   }
}

-(void) b {
   @synchronized(self) {
      // critical section 2 
   }
}

теперь мой вопрос в том, что поток находится в критическом разделе 1. Критический раздел 2 будет заблокирован для других потоков или других потоков, которые могут получить доступ к критическому разделу 2.

4b9b3361

Ответ 1

Критический раздел 2 будет заблокирован и для других потоков, так как вы синхронизируете один и тот же объект (self).