2011-04-12 2 views

답변

3

속성이 nonatomic으로 선언되지 않은 경우 합성 된 접근자는 잠금을 사용하여 속성이 스레드로부터 안전한지 확인합니다. 잠금이 불필요하게 사용되면 프로그램에 불필요한 메시지가 추가됩니다. 잠금 작업 자체도 원자 적이어야합니다. 즉 프로세서가 메모리 버스를 잠글 것입니다. 이로 인해 프로그램뿐만 아니라 다른 프로그램도 느려질 수 있습니다. 속성에 자주 액세스하지 않으면 차이를 느끼지 못할 것이지만 속성을 자주 사용하려면 확실히 사용하고 싶습니다. 전반적으로, 왜 그것을 사용하지? 잠재적으로 프로그램의 속도를 높일 수있는 몇 가지 추가 문자입니다.

+0

필자의 우려는 실제로 성능면에서이 여분의 범프만한 가치가있는 데드락/경쟁 조건/어떤 상황이 될 위험이 있는지입니다. – cfischer

+1

다중 스레드에서 사용할 수있는 것에는 '비 원자 (nonatomic)'를 사용하지 마십시오. 여러 스레드가 액세스 할 수있는 경우 원 자성이 필수적이므로 단일 스레드 응용 프로그램에서 사용하는 것이 유익한 지 묻는 것이므로 그 것이 확실하다고 생각한 것 같습니다. – ughoavgfhw

+0

질문은 "그럴 가치가 있니?" 그 질문은 특정 코드를 측정하지 않고는 대답 할 수 없습니다. –