美文网首页
iOS 进程 线程 队列

iOS 进程 线程 队列

作者: 阿木小丸子 | 来源:发表于2024-03-25 11:57 被阅读0次

进程:
进程是操作系统分配资源的基本单位,拥有独立的内存单元,一个进程崩溃,不会对其他进程造成影响。

线程:
线程是独立运行和对立调度的基本单位。线程是真正的执行单元,负责代码的执行。一个进程可以有一个或多个线程。线程和同一进程下的其他线程共享进程的资源,线程没有独立的地址空间,一个线程崩溃,整个进程就会崩溃。

线程与队列的关系:
队列是保存和管理任务,线程是在队列中读取任务执行。可以说线程执行队列调度的任务。

为什么要在主线程刷新UI?
因为UIkit不是线程安全的,如果多线程同时刷新UI,会造成资源抢夺、读写问题、UI异常、崩溃等。

队列:
队列是一种先进先出的数据结构,是一种特殊的线性表。

串行队列:只开启一个线程,每次只有一个任务可以执行,一个任务执行完毕才能执行下一个任务。主队列就是一种串行队列,主队列的任务在主线程执行。
并发队列:开启多个线程,让多个任务同时执行。全局队列是一种并发队列。

任务:
同步任务:不具备开启线程的能力。一个任务执行完,才会执行下一个任务。
异步任务:具备开启线程的能力,不会阻塞线程。

同步执行 + 串行队列:顺序执行
同步执行 + 并发队列:顺序执行
异步执行 + 串行队列:顺序执行
异步执行 + 并发队列:开启多线程
同步执行 + 主队列:死锁
异步执行 + 主队列:不会开启多线程

相关文章

网友评论

      本文标题:iOS 进程 线程 队列

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