美文网首页
多线程的理解

多线程的理解

作者: Mr丶炎 | 来源:发表于2016-07-18 08:50 被阅读120次
    • 多线程我们这样看--> 多 - 线程
      理解线程之前我们要先理解进程

    进程:
    1、在系统中正在运行的一个应用程序
    2、每个进程之间是独立的,有其受保护的内存空间

    比如同时打开迅雷和Xcode


    进程.png

    线程
    1、一个进程想要执行任务,必须得有线程(一个进程至少得有一条线程)
    2、一个进程的所有任务都是在线程中执行

    线程.png

    如果要在线程中执行多个任务,那么只能一个一个按顺序执行,也就是说同一时间一个线程只能执行一个任务

    线程的串行
    1、一个线程中任务的执行时串行的

    也可以认为线程是进程的一条执行路径


    线程的串行.png

    多线程

    一个进程中可以开启多个线程,每个线程可以并行(同时)执行不同任务,这是一个假象。
    多线程的原理
    同一时间,CPU只能处理一条线程,只有一条线程在工作
    多条线程同时执行,其实是CPU快速调度(切换)多条线程
    如果CPU调度的时间非常快,那么就造成了多条线程并发执行的假象

    线程的并行.png

    多线程总结

    • 优点:
      • 能适当提高程序的执行效率
      • 能适当提高资源的利用率
    • 缺点
      • 创建线程是有开销的,iOS下主要成本包括内核数据结构,栈空间,主线程
      • 如果大量开启线程,会降低程序的性能
      • 线程越多,CPU在调度线程上的开销就越大
      • 程序设计更加复杂,比如线程之间的通信,多线程的数据共享

    相关文章

      网友评论

          本文标题:多线程的理解

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