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

iOS之进程和线程

2015-05-21 09:54 106 查看
进程:

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

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

线程:(主线程最大占1M的栈区空间,每条子线程最大占512K的栈区空间)

  线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)

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

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

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

线程不能被杀掉,但是可以暂停/休眠一条线程.

创建线程的目的:

开启一条新的执行路径,运行指定的代码,与主线程中的代码实现同时运行.

多任务调度系统:

每个应用程序由操作系统分配的短暂的时间片(Timeslice)轮流使用CPU,由于CPU对每个时间片的处理速度非常快,因此,用户看来这些任务好像是同时执行的.

并发:

指两个或多个任务在同一时间间隔内发生,但是,在任意一个时间点上,CPU只会处理一个任务.

多线程的优势:

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

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

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

弊端:

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

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: