---恢复内容开始---
1.1 进程
进程是指在系统中正在运行的一个应用程序.每个进程之间是独立的,每个进程之间均运行在其专受保护的内存空间内.
1.2 线程
基本概念:一个线程要想执行任务,必须得有线程(每个进程中至少有一个线程). 线程是进程基本执行单元,一个进程的所有任务都在线程中执行.
线程的串行:一个线程中任务的执行是串行的,要想在一个线程中执行多个任务,那么只能一个一个的按顺序执行这些任务.也就是说,在同一时间里,一个线程只能执行一个任务.
1.3 多线程
基本概念:即一个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务.
线程的并行:并行也就是同时执行.比如同时开启3条线程分别下载3个文件(分别是文件A, 文件B, 文件C). 进程 ==> 车间 线程 ==> 车间工人
多线程并发执行的原理:在同一时间里,CPU只能处理一条线程,只有一条线程在执行. 多线程并发(同时)执行,其实是CPU快速的在多条线程之间调度(切换),如果CPU调度的时间足够快,就造成了线程并发执行的假象.
多线程的优缺点:
a优点 1>能适当提高程序的执行效率
2>能适当提高资源的利用率(CPU, 内存利用率)
b缺点 1>开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB,每创建线程需耗时90毫秒)如果开启大量的线程,会占用大量的内存空间,降低程序的性能.
2>线程越多,CPU在调度线程上的开销就越大
3>程序设计更加复杂:比如线程之间的通信, 多线程的数据共享
1.4 主线程
基本概念:一个iOS程序运行后,默认会开启一条线程,称之为"主线程" 或 "UI线程"
主要作用: 1>显示\刷新UI界面
2>处理UI事件 (比如点击事件, 滚动事件, 拖拽事件等)
使用注意: 1>别将比较耗时的操作放到主线程中
2>耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种"卡"的不好体验.
3>和UI相关的刷新操作必须放到主线程中进行处理.
---恢复内容结束---
原文:http://www.cnblogs.com/dawei-dawei/p/4912204.html