ios多线程操作(一)—— 多线程基础与原理
2016-04-16 11:48
483 查看
一、进程
进程是指在系统中正在运行的一个应用程序,每个进程之间都是独立的,每个进程都运行在其专用且受保护的内存空间内
二、线程
一个进程要想执行任务就必须要有线程,每一个进程至少都要有一条线程。
线程是进程的基本执行单元,一个进程的所有任务都在线程中执行。
线程又分为主线程和子线程:
主线程:一个ios程序运行后,默认会开启一条线程,称为“主线程”或“UI线程”,ios上任何UI的操作都在主线程上执行
子线程:除主线程外进程中得其他线程,程序中一般都将耗时的操作添加到子线程中,以避免卡住主线程。
三、线程的串行
一个线程中的任务执行都是按顺序执行的,也就是串行,假如要在一个线程中执行多个任务,那么就只能一个接一个按顺序执行这些任务。
同一个时间内一个线程就只能执行一个任务。
四、多线程
一个进程中可以开启多条线程,每条线程可以并发(同时)执行不同的任务。
多线程技术可以提高程序的执行效率。
例如有一款软件有个需求,需要在网络上下载3个文件,那么就可以分别开3条子线程在后台并发执行,而主线程可以不受影响的接受用户的请求
五、多线程原理
(1)、同一时间,CPU只能处理一条线程,只有一条线程在执行
(2)、多线程并发执行其实是CPU在多条线程之间快速的进行切换调度
(3)、如果CPU切换的时间足够快,就会造成多条线程并发执行的假象
(4)、如果线程过多那将会消耗大量的CPU资源,每条线程被调度执行的频次也会降低,这样就会造成“卡”的现象。
六、多线程的优缺点
优点:
(1)、能适当提高程序的执行效率
(2)、能适当提高资源(内存和CPU)利用率
缺点:
(1)、默认情况下,每一条线程都占用512K,线程所占用的大小可以修改,ios8以前的版本(具体忘记是哪个版本了)主线程是1M,子线程是512K,且大小不能修改
(2)、线程越多,CPU在线程调度上德开销就会越大
(3)、是程序设计更加复杂,比如线程间通信与多线程共享
进程是指在系统中正在运行的一个应用程序,每个进程之间都是独立的,每个进程都运行在其专用且受保护的内存空间内
二、线程
一个进程要想执行任务就必须要有线程,每一个进程至少都要有一条线程。
线程是进程的基本执行单元,一个进程的所有任务都在线程中执行。
线程又分为主线程和子线程:
主线程:一个ios程序运行后,默认会开启一条线程,称为“主线程”或“UI线程”,ios上任何UI的操作都在主线程上执行
子线程:除主线程外进程中得其他线程,程序中一般都将耗时的操作添加到子线程中,以避免卡住主线程。
三、线程的串行
一个线程中的任务执行都是按顺序执行的,也就是串行,假如要在一个线程中执行多个任务,那么就只能一个接一个按顺序执行这些任务。
同一个时间内一个线程就只能执行一个任务。
四、多线程
一个进程中可以开启多条线程,每条线程可以并发(同时)执行不同的任务。
多线程技术可以提高程序的执行效率。
例如有一款软件有个需求,需要在网络上下载3个文件,那么就可以分别开3条子线程在后台并发执行,而主线程可以不受影响的接受用户的请求
五、多线程原理
(1)、同一时间,CPU只能处理一条线程,只有一条线程在执行
(2)、多线程并发执行其实是CPU在多条线程之间快速的进行切换调度
(3)、如果CPU切换的时间足够快,就会造成多条线程并发执行的假象
(4)、如果线程过多那将会消耗大量的CPU资源,每条线程被调度执行的频次也会降低,这样就会造成“卡”的现象。
六、多线程的优缺点
优点:
(1)、能适当提高程序的执行效率
(2)、能适当提高资源(内存和CPU)利用率
缺点:
(1)、默认情况下,每一条线程都占用512K,线程所占用的大小可以修改,ios8以前的版本(具体忘记是哪个版本了)主线程是1M,子线程是512K,且大小不能修改
(2)、线程越多,CPU在线程调度上德开销就会越大
(3)、是程序设计更加复杂,比如线程间通信与多线程共享
相关文章推荐
- iOS远程通知的实现机制
- iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载
- 关于iOS内购
- 利用IOS的异常处理机制来做崩溃统计分析
- iOS CocoaPods安装和使用
- IOS开发 - Info.plist跟pch文件的作用
- ios互斥锁,线程同步
- IOS开发-读取xib文件
- IOS学习之——ViewController之间双向传值(反向为代理模式)
- IOS学习之——ViewController之间正向传值
- iOS 开发 Pch 文件的正确使用
- 【iOS】代码片段库
- 不是行业饱和了,是你对行业不饱和
- iOS中宏定义的使用与规范
- iOS开发中设置圆角的方法
- iOS 谓词
- 谓词的使用(predicate)
- 个人常用iOS第三方库以及XCode插件介绍
- iOS 顶部几个按钮切换界面代码
- iOS 十六进制颜色转RGB颜色