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]; } }