方式一:对该类CLASSA加线程锁,缺点:该类生成的实例共享一个线程锁,因此实例a、实例b、实例c在执行该方法时,会出现先后等待导致性能下降
synchrosized(self){
代码
}
方法二:使用nslock对要操作的代码进行加锁,问题:被锁中的代码由于资源不够产生死锁
_lock =[ [NSLock alloc]init];
void method {
[_lock lock];
代码
[_lock unlock];
}
方法三:使用GCD的串行队列进行处理数据
image.png
网友评论