iOS多线程相关iOS点滴程序员

iOS开发进阶--1.多线程简介

2015-11-22  本文已影响305人  findM

相关文章链接:
1.多线程简介(本文)
2.实现多线程的3种方法
......待续

学习是由已知的知识模型推理未知的知识模型的的过程。

本文适合学习完objective-c基础,想进一步提高做iOS开发的同学阅读。

在说线程的时候,我们先看看进程。

1.进程

每一个运行在系统中的应用程序,都有一个进程。进程是独立的,有着自己专属运行空间。进程的出现是为了解决多任务处理系统的问题。
首先看看单任务处理系统的示意图:


单任务处理系统.png

CPU按顺序执行任务1,任务2,任务3.... 前面的任务没有执行完,后面的任务是没法执行的。任务4哪怕再紧急,用的时间再短,也要等前面费时的任务3执行完才能轮到它。想象一下,你在听音乐的时候,想看视频,那就先把音乐听完才能去看,如果这样我估计你会疯掉吧。不过计算机刚刚出现的时候,系统就是单任务的。

任务1,任务2.....这里所说的任务 也就是运行在iOS系统中的app

幸好,多任务处理系统来了。

多任务调度系统.png
时间片(每个进程被分配一时间段,称为时间片,即进程允许执行的时间)。
注意:因为时间片的时间很短,CPU执行的速度非常快,每个任务几乎都能得到响应并执行。造成这些任务同时运行的假象。实际上在单个时间片内,只有一个任务在执行。

这里我们可以看出,进程是伴随多任务处理系统出现的一个产物。满足了我们阅读的同时,又想听音乐的愿望。

2.线程

每个app对应一个进程,系统协调进程之间的关系。但是在app内部,也有很多的不同的操作,有些操作是紧急的,有些操作是耗时的。
那么如何合理的安排这些操作呢?线程应运而生。原理与以上进程的协调是相似的。
所以有时候称线程为轻量级进程。

以淘宝为例,页面上有很多的图片,如果在主线程中下载图片,那么页面就会非常的卡。所以会把下载图片和耗时的操作放在别的线程。

淘宝页面加载图片.png 耗时的操作放在别的线程中.png

3.使用多线程的优缺点

优点:

缺点:

误区:

上一篇 下一篇

猜你喜欢

热点阅读