1>常驻线程;
2>并发问题;
常驻线程:
AFNetworking 2.0使用NSURLConnection使用的常驻内存。
AFNetworking 3.0使用NSURLSession废弃常驻内存。
如果你需要确实需要保活线程一段时间的话,可以选择使用 NSRunLoop 的另外两个方法 runUntilDate: 和 runMode:beforeDate,来指定线程的保活时长。让线程存活时间可预期,总比让线程常驻,至少在硬件资源利用率这点上要更加合理。
或者,你还可以使用 CFRunLoopRef 的 CFRunLoopRun 和 CFRunLoopStop 方法来完成 runloop 的开启和停止,达到将线程保活一段时间的目的。
并发:
GCD使用率最高。
总结来讲,类似数据库这种需要频繁读写磁盘操作的任务,尽量使用串行队列来管理,避免因为多线程并发而出现内存问题。
总结:
常驻线程一定不要滥用,最好不用。对于多线程并发也是一样,除非是并发数量少且可控,或者必须要在短时间内快速处理数据的情况,否则我们在一般情况下为避免数量不可控的并发处理,都需要把并行队列改成串行队列来处理。