iOS多线程

进程:

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.提供了更多的控制能力以及操作队列中所不能使用的底层函数。















发布了37 篇原创文章 · 获赞 8 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章