Ios面试复习--多线程(NSThread)

核心原理

统一时间CPU只能处理一条线程,只有一条线程在工作

多线程并发(同时)执行,其实是CPU快速的在多条线程间调度

ios下创建线程的主要开销在于内核数据结构1KB 栈空间子线程512KB 主线程1M 

默认主线程为UI线程

1.NSThread 面向对象,简单易用,可直接操作线程对象,几乎不管生命周期

2.GCD ios主推旨在 替代NSthread  充分利用设备的多核 自动管理生命周期

3.NSOperation 基于GCD封装的面向对象的多线程类,比GCD多了一些更简单实用的功能 同样自动管理生命周期

4.pthread 纯c 跨平台多线程库,手动管理线程生命周期,比较复杂不常用

1.NSThread

Ios面试复习--多线程(NSThread)_第1张图片
通过NSThread 类创建一个子线程的常见方式

通过NSObject 对象同样也可以调用开启子线程

隐式调用并直接调用线程

Ios面试复习--多线程(NSThread)_第2张图片
在NSThread 类中添加的NSObject 类别 用于更快速开启子线程

2.线程锁

多条线程保证在同步执行      用来保证每次访问线程都是安全的

@synchronized (){} 能保证在花括号内的内容在每次访问的时候都是安全的,而括号内为锁标记,标记每次不同线程访问时,都是同一个锁对象

Ios面试复习--多线程(NSThread)_第3张图片

3.利用NSThread实现线程间通信 图片下载

你可能感兴趣的:(Ios面试复习--多线程(NSThread))