iOS学习笔记之多线程

2019-08-19  本文已影响0人  Kity_Pei

前言

什么是线程?

线程是能够独立运行的基本单位,也是独立调度和分派的基本单位。

什么是进程?

进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,它具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元。每个进程之间是相互独立的, 每个进程均运行在其专用且受保护的内存空间内。

进程和线程的关系

线程是进程的执行单元,进程的所有任务都在线程中执行;
线程是 CPU 调用的最小单位;
进程是 CPU 分配资源和调度的单位;
一个程序可以对应过个进程,一个进程中可有多个线程,但至少要有一条线程;
同一个进程内的线程共享进程资源。

相同点:

进程和线程都是有操作系统所提供的程序运行的基本单元,系统利用这些基本单元实现系统对应用程序的并发性。

不同点:

什么是多线程?

多线程是指实现多个线程并发执行的技术。

什么是并发?

并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

多线程的优点和缺点

优点

可以大大提交软件的执行效率和资源(CPU、内存)利用率。

缺点

当线程过多会消耗大量的资源,每开一条线程也是需要耗费资源的(iOS主线程占用1MB内存空间,子线程占用512KB)。

iOS开发中的多线程

iOS程序在启动后会自动开启一个线程,称为主线程,用来显示、刷新UI界面,处理点击、滚动等事件,所以耗费时间的事件(比如网络请求、磁盘操作等)尽量不要放在主线程,避免造成阻塞主线程造成界面卡顿。

线程执行任务方式分为:

异步是指在多线程中,进程A在执行的进程线程B不等待线程A是否执行完成,而是直接执行它的相应操作。

同步执行指的是在多线程中,一个进程A在执行的时候,若线程A需要一段时间才能执行完成,那么另外一个线程B将会一直等待下去,直到线程A执行完成才会继续执行。

在iOS开发过程中多线程的实现方式有:

iOS多线程编程技术实现方式

pthread

iOS学习笔记之pthread多线程编程

NSThread

iOS学习笔记之NSThread多线程编程

GCD

iOS学习笔记之GCD多线程编程

NSOperation

iOS学习笔记之NSOperation多线程编程

上一篇下一篇

猜你喜欢

热点阅读