美文网首页
知识点总结

知识点总结

作者: 雪丹妮_66865 | 来源:发表于2017-08-22 11:57 被阅读13次

    一、 UITableView有哪些优化方式

    1. 使用不透明视图(不透明的视图可以极大地提高渲染的速度)
    2. 不要重复创建不必要的table cell
    3. 减少视图的数目
    4. 不要做多余的绘制工作
    5. 预渲染图像
    6. 不要阻塞主线程

    二、 线程和进程的区别?

    程序启动就是一个进程,进程中可能包含多个线程。在iOS开发中,UI界面的刷新是在主线程完成。所以网络请求全部会阻塞主线程,我们在开发过程中为了避免程序假死,就会单开线程来做网络请求的操作。当网络请求完成,通过回调,进行数据交互。
    主要分成两类:同步请求,异步请求
    同步请求:单线程,在下载完成前,阻塞线程,造成假死。
    异步请求:开辟新线程执行下载,不会阻塞主线程程序执行,当下载完毕后,通过回调完成数据反馈

    三、 iOS中都有哪些技术可以开辟线程,它们的联系和区别是什么?

    1. NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)
    2. 以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题
      1> NSOperation/NSOperationQueue 面向对象的线程技术
      2> GCD-- Grand Central DIspatch (派发)是基于C语言的框架,可以充分利用多核,是苹果推荐使用的多线程技术
      以上者三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的,在项目中很多框架技术分别使用了不同多线程技术。
      三种线程对比:
    3. NSThread
      --优点:NSThread比其他两个轻量级,使用简单
      --缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销
    4. NSOperation:
      --不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上
      -- NSOperation是面向对象的
    5. GCD:
      -- Grand Central Dispatch是由苹果开发的一个多核编程的解决方案。iOS4.0才能使用,是替代NSThread,NSOperation的高效和强大的技术
      --GCD是基于C语言的

    相关文章

      网友评论

          本文标题:知识点总结

          本文链接:https://www.haomeiwen.com/subject/doftrxtx.html