objective-c : @synchronized, how does it work?

g.revolution picture g.revolution · May 11, 2010 · Viewed 11.1k times · Source

i have two methods

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

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

now my question is if a thread is in critical section 1. will the critical section 2 be locked for other threads or other threads can access critical section 2.

Answer

mipadi picture mipadi · May 11, 2010

Critical section 2 will be blocked to other threads, as well, since you're synchronizing on the same object (self).