iOS 多线程入门01--概念知识

1.什么是进程?

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

2.什么是线程?

一个进程想要执行任务,必须要有线程(每1个进程至少有1个线程)
一个进程(程序)的所有任务都在线程中执行。

3.什么是多线程?

1个进程中开启多个线程,每个线程可以并行(同时)执行不同的任务。

4.多线程的原理?

同一时间,CPU只能处理1条线程,只有1条线程在执行。
多线程并发(同时)执行,其实是CPU在快速的在多条线程之间切换。
如果CPU切换线程的速度足够快,就造成了多线程并发执行的假象。

如果线程非常非常多,会发生什么情况?

CPU会在n条多线程之间切换,CPU会累死,消耗大量的CPU资源。
每条线程被切换执行的频次会降低(线程的执行效率降低)。

5.多线程的优缺点?

优点:
能适当提高程序的执行效率。
你能适当提高资源利用率。(CPU,内存利用率)。


缺点:
1.创建线程是有开销的,iOS下主要成本包括:内核数据结构(大约1KB)、栈空间(子线程512KB、主线程1MB,也可以使用-setStackSize:设置,但必须是4K的倍数,而且最小是16K),创建线程大约需要90毫秒的创建时间。
2.如果开启大量的线程,会降低程序的性能。
3.线程越多,CPU在切换线程上的开销就越大。
4.程序设计更加复杂:比如线程之间的通信,多线程的数据共享。

6.多线程在iOS开发中的应用?

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


主线程的主要作用?
1.显示\刷新  UI界面。
2.处理UI事件(点击事件,滚动事件,拖拽事件等)。


主线程的使用注意?
1.不要将比较耗时的操作放到主线程中。
2。耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种“卡”的坏体验。

7.iOS中多线程的实现方案?

技术方案 简介 语言 线程生命周期 使用频率
pthread 1.一套通用的多线程API。
2.适用于Unix\Linux\Windows等系统
3.跨平台\可移植 。
4.使用难度大。
C 程序员管理 几乎不用
NSThread 1.使用更加面向对象。
2.简单易用,可直接操作线程对象。
OC 程序员管理 偶尔使用
GCD 1. 旨在替代NSThread等线程技术。
2.充分利用设备的多核。
C 自动管理 经常使用
NSOperation 1.基于GCD(底层是GCD)。
2.使用更加面向对象。
3.比GCD多了一些更简单实用的功能。
OC 自动管理 经常使用

8.多线程中各种常用的线程锁?

iOS 多线程入门01--概念知识_第1张图片
线程锁.png

iOS 多线程入门02--NSThread
iOS 多线程入门03--GCD
iOS 多线程入门04--NSOperation

你可能感兴趣的:(iOS 多线程入门01--概念知识)