iOS 进程&线程&多线程

进程

  • 进程是在系统中正在运行的一个应用程序
  • 每个进程之间是独立的,每个进程皆运行在其专用且受保护的内存空间内
  • 一个应用程序可能对应多个进程。

线程

  • 一个进程如果想要执行任务,必须得有一个线程(一个进程至少得有一条线程)
  • 一个进程的所有任务都在线程中执行

线程的串行

  • 如果要在一个线程中执行多个任务,那么只能一个一个的按顺序执行任务,同一时间内一个线程只能执行一个任务。

多线程

  • 一个进程中可以开启多条线程,每条线程可以(同时)执行不同的任务
  • 原理:同意时间CPU只能处理1条线程,只有一条线程在工作,多线程并发执行时,其实是在CPU之间切换。
  • 注意:如果线程太多,CPU在多条线程之间切换,会消耗大量的CPU资源(通常3~5条线程就可以了)。
  • 优点:能适当提高程序的执行效率,提高资源的利用率。
  • 缺点:线程越多,会降低程序的性能

多线程的应用

什么是主线程

  • 一个iOS程序运行之后,会默认开启一条线程,称为主线程(UI线程)
  • 作用:
    • 显示/刷新UI界面
    • 处理UI事件(比如点击事件,拖拽滚动...)
  • 注意:
    • 耗时操作不应该放在主线程,因为耗时操作会卡住主线程会影响UI流畅度,会有一种卡顿的感觉(应该将耗时操作放到子线程「后台线程、非主线程」当中)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS多线程编程 基本知识 1. 进程(process) 进程是指在系统中正在运行的一个应用程序,就是一段程序的执...
    陵无山阅读 6,127评论 1 14
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,177评论 0 23
  • Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么? 1...
    AlanGe阅读 1,805评论 0 17
  • 多线程:防止主线程堵塞,增加运行效率。The term thread is used to refer to a ...
    我是谁重要吗阅读 1,145评论 1 4
  • 一.概述 1.基本概念 同步与异步的概念 同步 必须等待当前语句执行完毕,才可以执行下一个语句。 异步 不用等待当...
    Jt_Self阅读 495评论 0 1