连载四 奖学金文章更新 张文军 北京IOS第38期学员
2015-06-04 13:40
267 查看
程序、进程、线程
程序:由源代码生成的可执行应用。 (例如:QQ.app)
进程:一个正在运行的程序可以看做一个进程,(例如:正在运行的QQ警示一个劲曾),进程拥有独立运行所需要的全部资源
线程:程序中独立运行的代码段。(例如:接收QQ消息的代码)
一个进程是由一或多个线程组成,进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。
单线程
每个正在运行的程序(即进程),至少包括一个线程,这个线程叫主线程
主线程在程序启动时被创建,用于执行main函数
只有一个主线程的程序,称作单线程程序
主线程负责执行程序的所有代码(UI展现以及刷新,网络请求,本地存储等等)。这些代码只能顺序执行,无法并发执行
多线程
拥有多个线程的程序,称作多线程程序。
iOS允许用户自己开辟新的线程,相对于主线程来讲,这些线程,称为子线程
可以根据需要开辟若干子线程
子线程和主线程都是独立的运行单元,各自的执行互不影响,因此能够并发执行
单线程、多线程的区别
单线程程序:只有一个线程,代码顺序执行,容易出现代码阻塞(页面假死)
多线程程序:有多个线程,线程间独立运行,能有效地避免代码阻塞,并且提高程序的运行性能
注意:iOS中关于UI的添加和刷新必须在主线程中操作
iOS平台下得多线程
iOS多线程 实现种类
NSThread
NSOperationQueue
NSObject
GCD
NSThread
NSThread是一个轻量级的多线程,它有以下两种创建方法:
![](http://ugc.qpic.cn/adapt/0/d3ace8a2-e54c-86e0-6627-4cc7bfcbf37f/800?pt=0&ek=1&kp=1&sce=0-12-12)
注意:
在多线程方法中,需要添加自动释放池
在应用程序打开的时候,系统会自动为主线程创建一个自动释放池
我们手动创建的子线程需要我们手动添加自动释放池
无限互联官网:www.iphonetrain.com
二维码:
![](http://a3.qpic.cn/psb?/V13Ymsw71Po3Do/1z502oTTcaxtI0e1jy7IMjWNqUcvL6VzYdwrkylkg0A!/b/dGoAAAAAAAAA&ek=1&kp=1&pt=0&bo=bwFwAQAAAAAFADw!&su=2134510161&sce=0-12-12&rf=2-9)
程序:由源代码生成的可执行应用。 (例如:QQ.app)
进程:一个正在运行的程序可以看做一个进程,(例如:正在运行的QQ警示一个劲曾),进程拥有独立运行所需要的全部资源
线程:程序中独立运行的代码段。(例如:接收QQ消息的代码)
一个进程是由一或多个线程组成,进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。
单线程
每个正在运行的程序(即进程),至少包括一个线程,这个线程叫主线程
主线程在程序启动时被创建,用于执行main函数
只有一个主线程的程序,称作单线程程序
主线程负责执行程序的所有代码(UI展现以及刷新,网络请求,本地存储等等)。这些代码只能顺序执行,无法并发执行
多线程
拥有多个线程的程序,称作多线程程序。
iOS允许用户自己开辟新的线程,相对于主线程来讲,这些线程,称为子线程
可以根据需要开辟若干子线程
子线程和主线程都是独立的运行单元,各自的执行互不影响,因此能够并发执行
单线程、多线程的区别
单线程程序:只有一个线程,代码顺序执行,容易出现代码阻塞(页面假死)
多线程程序:有多个线程,线程间独立运行,能有效地避免代码阻塞,并且提高程序的运行性能
注意:iOS中关于UI的添加和刷新必须在主线程中操作
iOS平台下得多线程
iOS多线程 实现种类
NSThread
NSOperationQueue
NSObject
GCD
NSThread
NSThread是一个轻量级的多线程,它有以下两种创建方法:
注意:
在多线程方法中,需要添加自动释放池
在应用程序打开的时候,系统会自动为主线程创建一个自动释放池
我们手动创建的子线程需要我们手动添加自动释放池
无限互联官网:www.iphonetrain.com
二维码:
相关文章推荐
- 智能聊天机器人实现(源码+解析)
- 自定义微博小尾巴(源码+解析)
- [ios]ios读写文件本地数据
- 开发iOS SDK注意事项
- 欢迎加入iOS开发初学者交流群:180080550
- iOS使用CoreImage处理图像40中可用的滤镜名称
- iOS开发的一些奇巧淫技
- iOS 使用Quartz 2D画虚线
- iOS 代码实现自动布局(Auto Layout)第三方库
- IOS开发之AVPlayer(可定制播放器)
- iOS 隐藏顶部状态栏方式和更改颜色
- iOS优秀开源项目总结(转)
- iOS学习笔记——iOS国际化
- iOS 地图 通过经纬度计算两点间距离
- 关于苹果IOS相关的信息整理
- ios编码规范(by raywenderlich团队,靠谱)
- 关于deselectRowAtIndexPath
- iOS 转换异步block为同步方式运行
- 清除XCode缓存和生成文件
- iOS开发系列--iOS应用程序生命周期(前后台切换,应用的各种状态)详解