- (void)setProp:(NSString *)newValue {
[_prop lock];
_prop = newValue;
[_prop unlock];
}
按我理解:1.此處的線程安全是就getter,setter而言的苦蒿。
比如對于@property(nonatomic,copy)NSString *str; 當調(diào)用self.str = @"HELLO,GUY";
如果是多線程殴胧,在一個線程執(zhí)行setter方法的時候渗稍,會涉及到字符串拷貝,另一個線程去讀取团滥,很可能讀到一半的數(shù)據(jù)竿屹,也就是garbage數(shù)據(jù)。
2.另外的話灸姊,它也僅限于getter,setter時的線程安全拱燃。比如@property(atomic,strong)NSMutableArray *arr;
如果一個線程循環(huán)讀數(shù)據(jù),一個線程循環(huán)寫數(shù)據(jù)力惯,肯定會產(chǎn)生內(nèi)存問題碗誉。因為它和setter,getter沒有關系。