码迷,mamicode.com
首页 > 移动开发 > 详细

iOS之进程和线程

时间:2015-05-21 10:31:30      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

进程:

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

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

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

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

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

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

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

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

创建线程的目的:

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

多任务调度系统:

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

并发:

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

多线程的优势:

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

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

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

弊端:

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

 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉

iOS之进程和线程

标签:

原文地址:http://www.cnblogs.com/xing-li/p/4518950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!