2010-05-11 41 views
16

我有兩種方法objective-c:@synchronized,它是如何工作的?

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

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

現在我的問題是,如果線程處於臨界區1.將關鍵部分2鎖定其他線程或其他線程可以訪問臨界區2.

+1

爲什麼不標記最佳答案? – 2011-04-21 21:24:19

回答

28

關鍵由於您在同一個對象上進行同步(self),所以第2部分也會被其他線程阻塞。

相關問題