iOS多线程

来源:互联网 发布:深圳市斯基凯网络 编辑:程序博客网 时间:2024/05/22 03:52

多线程执行原理

  • 单核CPU同一时间,CPU只能处理一个线程,只有一个线程在执行
  • 多线程同时执行:是CPU快速的在多个线程之间切换
  • CPU调度线程的时间足够快,就会造成了多线程的 同时 执行
  • 如果线程非常多,CPU会在n个线程之间切换,消耗大量的CPU资源,每个线程被调用的次数会降低执行的效率

多线程的优缺点

  • 优点

    • 能适当的提高程序的执行效率
    • 能适当提高资源的利用率(CPU,内存)
    • 线程上的任务执行完成后,线程会自动销毁
  • 缺点

    • 开启线程需要占用一定的内存空间(默认情况下,每一个线程都占512KB)
    • 如果开启大量的线程,会占用大量的内存空间,降低程序的性能
    • 线程越多,CPU在调用线程上的开销就越大
    • 程序设计更加复杂,比如线程间的通信,多线程的数据共享

主线程

  • 一个程序运行后,默认会开启一个线程,称为主线程或UI线程
  • 主线程一般用来刷新UI界面,处理UI事件(比如:点击、滚动、拖拽等事件)
  • 主线程特别注意事项:
    *别将耗时的操作放到主线程中
    耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种卡的坏的体验

iOS中多线程的技术方案

  • pthread
    • 一套通用的多线程API,是由C语言来实现的,而且线程的生命周期是由程序员来进行管理,这种多线程方案几乎不用
    • 适用于Unix、Linux、Windows等系统
    • 跨平台,可移植
    • 使用难度大
  • NSThread
    • 是实用OC实现的,使用更加面向对象,操作简单,可直接操作线程对象,线程的生命周期也是由程序猿管理,这个偶尔会用到
  • GCD
    • 旨在替代NSThread等的多线程技术
    • 充分利用设备的多核优势,它也是实用C语言来实现的,并且它的线程的生命周期是自动管理的,也是我们使用最多的一种多线程技术方案
  • NSOPeration
    • 基于GCD(底层是GCD)
    • 比GCD多个一些更加简单的使用的功能
    • 使用更加面向对象,它是用OC来实现的,线程的生命周期是自动管理,这个也是经常使用的多线程技术方案
0 0
原创粉丝点击