多线程 概念
进程 ,可以理解为 系统中的一个 运行程序 (app) 是系统进行资源调用的 基本单位 主要是 管理资源.
线程., 可以理解为 进程的执行者,进程的最小单位 基本单位.一个进程的所有任务都是在线程中执行
多线程
一个进程可以开启多条线程,每条线程可以并行执行不同的任务. 这个技术可以提高程序的执行效率
多线程原理
同一时间,CPU 只能处理一条线程, 只有一条线程在工作
多线程并发执行,其实是 CPU 快速的在多条线程之间调度(切换)
如果 CPU 调度线程的时间足够快, 就造成了多线程并发执行的假象
缺点
创建多线程是有开销的,iOS 下主要成本包括: 内核数据结构,(大约1KB), 栈空间(子线程512KB, 主线程1MB, 也可以使用 -setStackSize: 设置, 但必须是4K 的倍数, 而且最小是16K), 创建线程大约需要90毫秒的创建时间
如果开启大量线程, 会降低程序的性能
线程越多,CPU 在调度线程上的开销就越大
程序设计更加复杂: 比如线程之间的通信, 多线程的数据共享
优点
能适当的提高程序的执行效率
能适当提高资源利用率(CPU 内存利用率)
在 iOS 中其实目前有 4 套多线程方案,他们分别是:
Pthreads
NSThread
GCD
NSOperation & NSOperationQueue
Pthreads
这个多线程是 基于 C语言的 所以 众所周知 c语言是底层语言 是最强大的 但是 代码复杂程度 太大 虽然 很多操作系统都 能用到 但是 我们 ios 可以 忽略 知道 即可 当然 懂 那就是 更牛.
网友评论