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

ios线程第一发:线程简介

2015-01-31 00:07 176 查看
线程和进程:
进程:系统中正在运行的应用程序
       进程之间相互独立,运行在专用且受保护的内存空间内
       
线程:线程是进程的基本执行单位,一个进程的所有任务都在线程中执行

关系:进程想执行任务,必须得有线程(每个进程至少有一个线程)
       线程是进程中的一条执行路径

线程:
串行:按照顺序执行,同一时间之内一个线程只能执行一个任务

多线程: 
一个进程中可以开启多条线程,每条线程可以并发(同时),执行不同的任务
并行:同时执行不同任务(可以提高程序的至ing 效率)

2.多线程原理:
同一时间 cpu 只能处理一条线程,只有一条线程在工作(执行)
多线程并发(同时)执行, 就是cpu 快速在多条线程之间调度(切换)
cpu 调度线程的时间足够快,就造成多线程并发的假象

3.优缺点
优点:能适当提高程序的执行效率
       能适当提高资源利用率(cpu, 内存利用率)

缺点:开启线程需要一定的内存空间,(默认线程都占用512kb,以前主线程1m, 子线程512k, 如果开启大量线程,会占用大量内存,降低程序性能
       线程越多, cpu 在调度线程上得开销就越大,线程的执行效率降低
       程序设计更复杂:(线程之前的通信,多线程数据共享)

4.主线程(ios 程序运行之后,默认开启一条线程,称为主线程或者 ui 线程) 
  作用: 1>刷新/显示 ui 界面
          2>处理 ui 事件(点击,滚动,拖拽)
  注意:不能放耗时操作,耗时操作会卡主主线程,影响 ui 流畅度.

5.线程创建的三种方式(ios多线程实现方案):
 pthread: 几乎不用
 NSThread(附录1):(面向对象,简单易用,可直接操作线程对象)
               生命周期:程序员管理,
               使用频率:偶尔使用  
         
GCD(附录2):(代替 NSThread 等线程技术,充分利用设备的多核)
               生命周期:自动管理
               使用频率:经常使用
NSOperation:(基于 GCD 底层是 GCD,比 GCD 多了些简单实用,更面向对象)
               生命周期:自动管理
               使用频率:经常使用 

6.线程的状态: 
线程的执行是由 cpu 调度的,程序员不能参与,
提示:在开发多线程的时候,不要相信一次执行的结果

线程的优先级:优先级高的任务只是便是 cpu 调度的频率高
误区:优先级高的任务会先执行完
建议:不要修改线程的优先级,做多线程开发最主要的目的是将耗时的操作放在后台,
修改优先级的隐患:优先级翻转

开发多线程宝典:尽量简单!

7.多线程安全隐患
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: