一、区别
1.NSThread、 GCD、 NSOperation 抽象封装度层次从低到高,抽象封装度越高使用越简单;
1.NSThread是封装程度最小最轻量级的,使用更灵活,但要手动管理线程的生命周期、线程同步和线程加锁等,开销较大;
2.GCD基于NSThread封装,内部进行了效率优化,提供了简洁的C语言接口,使用更加简单高效,也是苹果推荐的方式;速度三者中最快;
3. 从异步操作之间的事务性,顺序行,依赖关系。GCD需要自己写更多的代码来实现,而NSOperationQueue已经内建了这些支持
4. 异步操作如果需要更多的被交互和UI呈现出来,NSOperationQueue更好。GCD任务之间不太互相依赖,而需要更高的并发能力,GCD则更好;
二:注意事项
1.线程安全问题;加锁https://www.jianshu.com/p/fa9167ec50b5
三.线程与进程
一个程序至少包含一个进程,一个进程至少包含一个线程,线程共享当前进程所拥有的资源。
四.线程五大状态:新建状态、就绪状态、运行状态、阻塞状态、死亡状态
网友评论