objective-c 多线程注意的问题

1、资源竞争:当每个线程都去访问同一段内存时,会导致所谓i资源竞争问题,这时候可以通过“@synchronized block”将实例变量包围起来,创建一个互斥锁,

  这样你就可以确保在互斥锁中的代码一次只能被一个线程访问:

@synchronized(self){
       a.object = value;  
}

2、原子性:将一个property声明为atomic时,通常会把它包裹在一个@synchronized块中,确保是线程安全的

@property (atomic, retain) NSString *myString;

- (NSString *)myString {
    @synchronized (self) {

        return [[myString retain] autorelease];

    }

}
原文地址:https://www.cnblogs.com/xiongqiangcs/p/3447605.html