1、NSArray与NSSet的区别?NSArray内存中存储地址连续,而NSSet不连续NSSet效率高,内部使用hash查找;NSArray查找需要遍历NSSet通过anyObject访问元素,NSArray通过下标访问2、NSHashTable与NSMapTable?NSHashTable是NSSet的通用版本,对元素弱引用,可变类型;可以在访问成员时copyNSMapTable是NS
GCD > 什么是GCD a、全称是Grand Center Dispatch,即牛逼的中枢调度器; b、纯C语言,提供了非常多强大的函数; > GCD的优势 a、GCD是苹果公司为多核的并行运算提出的解决方案; b、GCD会自动利用更多的CPU内核(比如双核、四核); c、GCD会自动管理线程的生命周期(创建线程、
SDWebImageManager:总调度类,内部有SDImageCache、SDWebImageDownloader SDImageCache:处理内存、disk 的缓存 SDWebImageDownloader:真正的下载管理者,内部有SDWebImageDownloaderOperation(NSOperation)、downloadQueue (NSOperationQueue) mark:https://blog.csdn.net/u014600626/a
原文链接:https://my.oschina.net/kmodel/blog/619376 前言 1.上一讲简单介绍了NSThread的使用,虽然也可以实现多线程编程,但是需要我们去管理线程的生命周期,还要考虑线程同步、加锁问题,造成一些性能上的开销。我们也可以配合使用NSOperation和NSOperation
NSOperation 这个类是基于GCD,是苹果方便方便开发者封装的一个基类 一般使用它的子类进行多线程操作 NSInvocationOperation NSBlockOperation 也可以自己封装一个继承自NSOperation自定义的子类 使用步骤 需要执行的操作封装到一个NSInvocationOperation/NSBlockOpera
接着看NSOperation、NSOperationQueue线程间的通信: 应用场景:比如我们经常把一些耗时的操作比如下载图片放在子线程,那么当这个完成之后,我们就需要回到主线程,这个时候就需要用到线程间的通信。 来看下代码: //线程间通信-(void)communication{ //1.创建队列 NSOperationQueue *
自定义操作: -(void)customOperation { //创建队列 NSOperationQueue *queue = [[NSOperationQueue alloc]init]; //封装操作 XMGOperation *op = [[XMGOperation alloc]init];//自定义NSOperation,执行的任务在自定义类的main方法中执行。