阿里8年的老程序员的经验:iOS进阶和iOS多线程简介
1简介。线程(本文)
cpu
2。实现多线程的3种方法
关注作者:需要ios高级研发进阶资料,可以留言或者私聊
学习是通过已知知识模型推理未知知识模型的过程。
本产品适用于学习Objective-C语言的基础,并进一步提高学生阅读iOS开发。
当您谈论线程时,让我们先看看进程。
1。过程
系统中运行的每个应用程序都有一个进程。这个过程是独立的,并且有它自己的独占操作空间。进程的出现是为了解决多任务系统的问题。
首先,看一个单任务处理系统的示意图:
单任务处理系统
CPU按顺序执行任务1,任务2,任务3…前一个任务没有完成,后面的任务没有执行。任务4,即使它是紧急的,有很短的时间使用,它需要等待时间完成任务3获得它。想象一下,当你听音乐的时候,你想在看音乐之前先看录像和听音乐。如果是这样的话,我想你会发疯的。但是当计算机刚刚出现时,系统只是一个单一的任务。
任务1,任务2…这里描述的任务是运行在IOS系统中的应用程序。
关注作者:需要ios高级研发进阶资料,可以留言或者私聊
幸运的是,多任务系统已经到来。
多任务调度系统
时间片(每个进程被分配一段时间,称为时间片,即进程允许执行的时间)。
注意:因为时间片很短,CPU执行得很快,每个任务几乎都能得到响应并执行它。这些任务同时运作的假象。事实上,只有一个任务是在时间片中执行的。
在这里,我们可以看到这个过程是多任务系统的产物。当我们阅读时,我们对听音乐的渴望感到满意。
关注作者:需要ios高级研发进阶资料,可以留言或者私聊
数据
2。线
每个应用程序对应一个进程,系统协调进程之间的关系。但在一个应用程序中,有许多不同的操作,有些操作是紧急的,有些操作是耗时的。
那么如何正确安排这些操作呢?线程应运而生。这个原理类似于上述过程的协调。
所以有时候线程被称为轻量级进程。
线程是进程中独立的执行路径(控制单元)。
进程中至少有一个线程,主线程。
我们可以在其他线程上花费耗时的操作。
UI相关的操作都在主线程中,因此UI在主线程中更新。
在淘宝,例如,有很多图片的网页。如果您在主线程中下载图片,页面将非常卡。因此,您将把下载图片和耗时的操作放在其他线程上。
淘宝的页面加载png图片。
耗时的操作被放置在其他线程中。
关注作者:需要ios高级研发进阶资料,可以留言或者私聊
程序
三。使用多线程的优点和缺点
优势:
充分发挥多核处理器的优势,为不同的处理器分配不同的线程,真正进入“并行计算”状态。
将耗时的任务分配给其他线程,以及使用主线程更新接口,将使应用程序更流畅,用户体验更好。
随着硬件处理器数量的增加,程序运行得更快,程序不需要做任何调整。
缺点:
新线程将占用更多内存和CPU,太多线程将降低系统的整体性能。
误解:
多线程技术只是一种并发执行任务,允许更多的优先级和更紧急的操作响应,并不能提高单个算法执行的效率


浙公网安备 33010602011771号