首页 > 移动平台 > 详细

ios线程学习

时间:2015-09-02 01:59:23      阅读:315      评论:0      收藏:0      [点我收藏+]

1、什么是进程?

  进程是指在系统中正在运行的一个应用程序。比如同时打开QQ、Xcode,系统就会分别启动2个进程。截图

  技术分享

2、什么是线程?

  1)、一个进程要想执行任务,必须得有线程(每一个进程至少要有一条线程)

  2)、线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行

  3)、一个线程中任务的执行是串行的。即如果要在1个线程中执行多个任务,那么只能一个一个的按顺序执行这些任务

3、什么是多线程?

  1)、一个线程中可以开启多条线程,每条线程可以并行执行不同的任务。比如同时开启三条线程分别下载3个文件

  2)、同一时间,CPU只能处理一条线程,只有一条线程在工作(执行)

  3)、多线程并发(同时)执行,其实是CPU快速的在多线程之间调度(切换)

  4)、如果cpu调度线程的时间足够快,就造成了多线程并发执行的假象

  5)、如果线程非常非常多,那么会发生什么情况呢?

    可能导致cpu在N条线程之间调度,消耗大量的cpu资源,进而导致每条线程被调度执行的频次会降低(线程的执行效率降低)

  6)、多线程的优点:能适当提高程序的执行效率;能适当提高资源利用率(cpu、内存利用率)

  7)、多线程的缺点:

    开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能;

    线程越多,cpu在调度线程上的开销就越大;

    程序设计更加复杂:比如线程之间的通信、多线程的数据共享

4、什么是主线程

  1)、一个ios程序运行后,默认会开启一条线程,称为”主线程“或”UI线程“

  2)、主线程的作用:

    显示/刷新UI界面;

    处理UI事件(比如点击事件、滚动事件、拖拽事件等)

  3)、主线程的使用注意:

    别将比较耗时的操作放到主线程中;耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种”卡“的坏体验;

    所以一般将耗时操作放在子线程(后台线程、非主线程)

5、ios中多线程的实现方案:

  技术分享

 

ios线程学习

原文:http://www.cnblogs.com/tandaxia/p/4777442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!