2012-08-25 3 views

답변

2

하나의 옵션은 메서드에서 @synchronized를 사용하는 것입니다.

- (NSString *)someMethod { 
    @synchronized(self) { 
     // do some work 
    } 
} 

이 메서드를 사용하면 호출 할 수 있지만 자체적으로 동기화하고 작업 (더 중요한 것은 작업중인 데이터)을 보호합니다.

+0

효과가있었습니다. 고맙습니다. 나는 아직도 의심이있다. 프로세스가 첫 번째 스레드에 의해 완료되면 두 번째 스레드는 자동으로이 메소드에 액세스 할 수 있습니까? 첫 번째 스레드가 작업을 완료 할 때까지 다른 모든 스레드가 대기합니까? – Dee

+0

예, 두 스레드 모두 메소드에 들어가고, 하나는 동기화 된 코드 블록을 실행하고 다른 스레드는 수행을 계속합니다. – bryanmac

+0

다음은 더 자세한 설명입니다. http://stackoverflow.com/questions/1215330/how-does-synchronized-lock-unlock-in-objective-c – bryanmac

관련 문제