您的位置:首页 > 移动开发 > IOS开发

iOS多线程

2016-02-24 22:03 441 查看
进程:

1.正在进行中的程序被称为进程,负责程序运行的内存分配

2.每个进程都有自己独立的虚拟空间

线程:

1.线程是进程中一个独立的执行路径(控制单元)

2.一个进程中至少包含一条线程,即主线程

3.可以将耗时的执行路径(如:网络请求)放在其他线程中执行

总结:创建线程的目的就是为了开启一条新的执行路径,运行指定的代码,与主线程的代码实现同时运行。



主线程栈区有1M,而子线程只有512K。而子线程在未完成进程任务的时候,是不能被杀死的,但是可以将其休眠,暂停。当子线程的进程任务

完成之后,系统才会回收子线程。

多线程的优势:

1.充分发挥多核处理器优势,将不同线程任务分配给不同的处理器,真正进入“并行运算”状态。

2.将耗时的人物分配到其他线程执行,由主线程负责统一更新界面会使应用更加流畅,用户体验更好

3.将硬件处理器的数量增加,程序会运行更快,而程序无需做任何调整

弊端:新建线程会消耗内存空间和CPU时间,线程太多会降低系统的运行性能

误区:多线程技术是为了并发执行多项任务,不会提高单个算法本身的执行效率

iOS中三种多线程技术:

NSThread:

1.使用NSThread对象建立一个线程非常方便

2.使用NSThread管理多个线程非常困难,不推荐使用

3.使用最多的【NSThread currentThread 】获取当前线程,适用于NSThread,NSOperation,GCD这三种技术

NSOperation/NSOperation Queue:

1.是使用GCD实现的一套OC的API

2.是面向对象的线程技术

3.提供了一些在GCD中不容易实现的特性,如:限制最大的 并发数量,操作之间的依赖关系

GCD(Grand Central Dispatch)

1.是基于C语言的底层API

2.是Block定义任务,使用起来灵活便捷

3.提供了更多的控制能力以及操作队列中所不能使用的底层函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: