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

    }

}

 

posted @ 2013-11-28 14:10  OpenSoucre  阅读(255)  评论(0编辑  收藏  举报