美文网首页
iOS 多线程介绍

iOS 多线程介绍

作者: Joker_King | 来源:发表于2016-04-19 21:04 被阅读29次

    线程简介

    为什么要使用多线程

    当用户在执行某项操作,比如上传图片,主线程会执行这个动作,直到上传结束后。主线程才会执行后面的操作,在这段时间内主线程处于忙碌状态,不会对用户的请求作出任何反应。这样的话会给用户一种很不好的体验,此时多线程的作用就体现出来了。

    单线程和多线程的区别

    • 单线程程序:只有一个线程即主线程,代码顺序执行,容易出现代码阻塞(页面假死)。
    • 多线程程序:有多个线程,线程之间独立运行,能有效的避免代码阻塞,并提高程序的运行性能。
    • 注意:iOS中关于UI的添加和刷新必须在主线程中操作。

    多线程中的一些基本知识

    • 进程:一个正在运行的程序可以看做一个进程,进程拥有当前项目里的所有资源。
    • 线程:程序中独立运行的代码段。
    • 一个进程是由一个或多个线程组成。进程值负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。
    • 线程分为主线程,和子线程,主线程的别名右叫做UI线程。
    • 子线程在iOS5之前不具备刷新UI的功能。刷新UI不建议在子线程中(如果多个线程同时操作ui有可能会出现问题,导致程序的崩溃)
    • 处理数据时,耗时的处理,在子线程中处理,刷新UI时在主线程中。
    • 多线程之间的并发执行其实不是真正意义上的并发执行,而是一中伪并发执行。
    • 伪并发执行:CPU快速的在多个线程之间跳跃。

    cocoa中与线程相关的类

    • NSThread:代表执行的线程,可以使用该类的对象封装线程操作。
    • NSOperation:操作对象(Operation Object)的抽象基类,定义了任务的执行环境、状态等基本属性,继承该类来执行具体的操作。
    • NSInvocationOperationNSOperation的子类,可以指定操作方法。
    • NSOperationQueue:操作队列(Operation queue)的管理者,配合NSOperation的子类对象和NSInvocationOperation对象使用,通过添加操作对象完成并发操作。

    多线程管理

    多线程管理也就是主线程和子线程之间的一个通信:所谓的通信就是从子线程回到主线程,从主线程进入子线程。

    相关文章

      网友评论

          本文标题:iOS 多线程介绍

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