iOS多线程介绍

来源:互联网 发布:潍坊全影网络是传销吗 编辑:程序博客网 时间:2024/05/01 00:39

进程

广义上讲,进程是系统中正在运行是一个应用程序。每个进程之间都是独立的,这就意味着一个进程是不能访问另一个进程。
这里写图片描述
进程在处理器上是交替运行的,进程的状态也是不断在发生变化。
这里写图片描述

iOS线程介绍

-线程是进程的基本执行单元;
-进程的所有任务都在线程中执行。

换句话说,就是一个进程要想执行任务必须有一个线程,这个线程我们通常称之为“主线程”。在iOS应用开发中,我们也称之为“UI线程”。
这里写图片描述

通常情况下,我们会把如网络请求等任务放到独立的线程中去执行,而把刷新UI放到主线程当中,以保证iOS UI操作的流畅性。

为什么要学习多线程

在我们实际项目开发当中,会有很多场景需要我们运用多线程的知识去解决问题。
比如:网络请求、图片加载、文件处理、数据存储、任务执行。
通常情况下,都会放到一个异步线程中去完成。所谓异步,就是在不阻塞UI线程和工作线程的前提下,来完成相应的任务。换句话说,就是保证UI操作的流畅性。

任务执行方式

串行:多个操作按照一定的顺序来执行
这里写图片描述
串行任务之间有依赖的关系,所花的时间是每个任务耗时之和。

并行:多个任务并发执行
这里写图片描述
并行所花费的时间,就是最大耗时的任务的时间。

多线程的实现原理

这里写图片描述
对于单核的操作系统来讲,同一个时间只能有一个线程在执行,那么如何保证多线程高效率的执行呢?
操作系统会为每个线程分配时间段(时间片),系统会根据一定的算法来为每个线程间隙性的分配时间来执行任务。
这里写图片描述

多线程的优点和缺点

优点:
1、简化了编程模型
2、更加轻量级
3、提高了执行效率
4、提高了资源利用率
缺点:
1、增加了程序设计的复杂性
2、占用内存空间
3、增大了CPU调度开销

0 0