objective-c:@synchronized,它是如何工作的?

时间:2010-05-11 12:04:50

标签: iphone objective-c multithreading semaphore

我有两种方法

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

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

现在我的问题是,如果某个线程处于关键部分1,那么关键部分2是否会被其他线程锁定,或者其他线程可以访问关键部分2.

1 个答案:

答案 0 :(得分:28)

关键部分2也将被阻止到其他线程,因为您正在同一个对象(self)上进行同步。