iOS에서 atomic을 사용하는 것은 틀림없이 라인이 안전합니까?왜?
- (void)setProp:(NSString *)newValue {
[_prop lock];
_prop = newValue;
[_prop unlock];
}
내 이해로: 1.이곳의 라인 안전은 Getter,setter에 의해 결정됩니다.
예를 들어 @property(nonatomic,copy) NSString*str의 경우self를 호출합니다.str = @"HELLO,GUY"; 만약 다중 스레드라면, 한 스레드가setter 방법을 실행할 때 문자열 복사와 관련이 있고, 다른 스레드가 읽으면, 절반의 데이터, 즉 가베이지 데이터를 읽을 수 있다.
2. 또한 Getter,setter의 라인만 안전합니다.예를 들어 @property(atomic,strong) NSMutable Array *arr;
만약 한 라인이 데이터를 순환해서 읽는다면, 한 라인이 데이터를 순환해서 쓰면 틀림없이 메모리 문제가 발생할 것이다.이것은 setter, Getter와 관계가 없기 때문이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.