iOS——多线程

一、进程

进程可以理解为一个应用程序;比如说打开 QQ,那么在内存中就会为 QQ 分配一块进程;打开微信,那么在内存中就会为 微信 分配一块进程;并且进程之间是相互独立的
进程在内存中的状态

二、线程

1. 概念

线程是进程的基本单元(可以理解为一个进程中的各个操作);比如说 QQ,其中的很多操作,比如说发送文件,下载图片等,这些都是子线程

例如 xcode 进程中的线程
线程描述

一个进程最少有一个线程,称为主线程

进程的各个操作都是在主线程或子线程中完成的

2. 串行、并行

串行和并行都是针对线程而言的

  • 串行
    串行是指一个线程中的任务一个一个执行,即上一个任务执行完,下一个任务才能继续;即在同一时间内,只能执行一个任务

如图
串行
可以看出,串行的耗时是所有任务的总和

  • 并行
    并行是指一个线程中的任务可以同时进行;即在同一时间内可以进行多个任务

如图
并行
可以看出,在同一时间内有多个任务在执行,所以耗时就是最长任务的耗时

3. 多线程

1)概念

因为每个进程最少都一个线程(主线程),在主线程中还可以创建多个子线程,并且主线程和子线程中的任务是互不干涉的;

也就是说,在同一时间内,可以同时进行主线程和子线程中的任务

如图
多线程描述

2)原理

  • 单核操作系统
    在单核操作系统上,因为在同一时间内只能运行一个任务,那如何实现多线程呢??

系统会为每一个线程指定一个确定的执行时间,当然这个时间很短,然后在各个线程之间做切换(调度),以此来达到多线程

如图
单核多线程

可以看出,单核操作系统的多线程实际上还是串行的,只不过在时间很短的情况下进行线程之间的切换,所以看起来就好像是多线程了

  • 多核操作系统
    在多核操作系统上,在同一时间内可以运行多个任务,所以很容易实现多线程,并且是真正的多线程

如图
多核多线程

3)优缺点

  • 优点
    能提高 CPU 的利用率和执行效率

  • 缺点
    消耗内存(创建一个新的线程会消耗一定的内存)
    如果开启的线程过多,那么 CPU 的开销就越大

4)iOS 的多线程

iOS 应用在启动后,只会开启一条线程(主线程,也称 UI 线程)

通常,在 主线程 中做一些不耗时的工作;例如 刷新 UI 界面、监控事件等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值