iOS多线程系列之一:多线程基础

2019-02-27  本文已影响0人  十拿九稳啦

图片来自互联网

第一部分 多线程基础

一、线程的基本概念

1.多线程出现的背景

在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。可以通过多种途径达到这个目的。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了通过提高资源使用效率来提高系统总体的效率。线程是在同一时间需要完成多项任务的时候执行的。

2.进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

简单来说,进程是指在系统中正在运行的一个应用程序,每一个程序都是一个进程,并且进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。

3.线程

线程,是程序执行流的最小单元线程是程序中一个单一的顺序控制流程。是进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。

简单来说,1个进程要想执行任务,必须得有线程。

线程中任务的执行是串行的
要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务
也就是说,在同一时间内,1个线程只能执行1个任务
由此可以理解线程是进程中的1条执行路径

4.多线程

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

原理:

优点:

缺点:

二、iOS开发中的应用

1.主线程

一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”。

作用:
显示\刷新UI界面
处理UI事件(比如点击事件、滚动事件、拖拽事件等)
注意:
刷新UI必须放在主线程
别将比较耗时的操作放到主线程中
耗时操作会卡住主线程,严重影响UI的流畅度

2.实现方案

实现方案

iOS多线程系列之一:多线程基础
iOS多线程系列之二: NSThread
iOS多线程系列之三:GCD
iOS多线程系列之四:NSOperation以及多线程技术比较

上一篇下一篇

猜你喜欢

热点阅读