关于——多线程
通过近期的学习,发现还是写点博客吧。有几下因素
第一、记忆更深刻,第二、方便以后的查阅,与复习。
废话不多说,开始写笔记
———————————————————华丽的分割——————————————————————
为什么要学习多线程
为了能给用户提供更好的体验。让APP运行更流畅。个人总结
想要了解多线程,首先要明白什么是,进程、线程、
一、什么是进程
进程就是,正在系统中运行的程序。如:QQ、迅雷、微博等。进程与进程之间,是相互独立的运行在内存中。
如:开启迅雷,就是开启了一条进程。
二、什么是线程
线程就是处理进程的任务。也可以认为,用户与APP的交互任务,是在线程中执行的。
如:迅雷在执行下载任务,就是在线程中执行。
三、线程的串行
1个线程中任务的执行是串行的
如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务。
举例:好比说,一个群人,在排队买票。售票员只能一个一个的去售票。不能同时处理两人的买票业务。(貌似有点不是很严谨)
四、多线程
1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务 这就是多线程。
如:迅雷可以开启多个下载任务。
* 多线程的原理
同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)
多条线程同时执行,其实是CPU快速地在多条线程之间切换
如果CPU切换线程的时间足够快,就造成了多线程并发执行的假象。
*.多线程的优缺点
多线程的优点
能适当提高程序的执行效率
能适当提高资源利用率(CPU、内存利用率)
* 多线程的缺点
开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
线程越多,CPU在调度线程上的开销就越大
程序设计更加复杂:比如线程之间的通信、多线程的数据共享
* 多线程在iOS开发中的应用
主线程:一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”
主线程的主要作用
显示\刷新UI界面
处理UI事件(比如点击事件、滚动事件、拖拽事件等)
主线程的使用注意:别将比较耗时的操作放到主线程中。
耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种“卡”的坏体验。
注释:此笔记是,根据文顶顶老师博客而写
文顶顶老师博客:http://www.cnblogs.com/wendingding/
关于多线程的文章地址:http://www.cnblogs.com/wendingding/p/3805088.html