0

속성 (atomic, retain) NSString * 식별자는 여러 스레드에서 읽을 수 있습니다. 그래서 안전 -속성 스레드를 안전하게 설정하십시오.

- (NSString *)identifier 
    { @synchronized(self) 
     { 
      return [_identifier retain] autorelease]; 
     } 

    } 

또는

- (NSString *)identifier 
     { @synchronized(identifier) 
      { 
       return [_identifier retain] autorelease]; 
      } 

     } 

Infact는 스레드 만들 수있는 올바른 방법 인, 내가 키 매개 변수의 목적을 알고 싶어하는 것은 @synchronize (키)입니다. 도와 주셔서 감사합니다.

+0

이 문맥에서 "스레드 안전성"이란 정확히 무엇을 의미합니까? 액세스 할 때 충돌이 발생하지 않거나 특수한 스레드 관련 기능이있는 것일뿐입니다. –

+1

자동 생성 된 getter는 (기본)'atomic' 속성을 가지고 올바른 일을 할 것입니다; 왜 너 스스로 게터를 만들어내는거야? – Droppy

+0

@JoachimIsaksson, thread-safe는 데이터 무결성을 의미합니다. @ Droppy 원자는 스레드 안전을 보장하지 않습니다. – russell

답변

0

@synchronized의 인수는 동기화가 발생하는 개체입니다. 다른 @synchronized (self)가 동일한 객체와 동기화되면 다른 @synchronized (self)가 실행되는 동안 중지됩니다.

실제로 컴파일되는 코드를 게시 할 수 있습니다. 두 번째 컴파일은 실제로 컴파일되지 않는다고 말할 것입니다.