iOS—OC——多线程汇总
2015-11-03 21:45
281 查看
GCD中又三种队列类型:
1.The main queue:与主线程功能相同。实际上,提交至main queue 的任务会在主线程中执行。main queue 可以调用dispatch_get_main_queueu()来获得。因为main queue是与主线程相关的,所以这是一个串行队列。
2.Global queues : 全局队列是并发队列,并由整个进程共享。进程中存在三个全局队列:高、中(默认)、低三个优先级来访问队列。
3.用户队列: 用户队列(GCD并不这样称呼这种队列,但是没有一个特定的名字来形容这种队列,所以我们称为 用户队列)是函数 dispatch_queue_create 穿件的队列。这些队列是串行。正是因为如此,它们可以用来完成同步机制。有点像传统线程中的mutex。
GCD:
-Grand Central Dispatch 是由苹果开发的一个多喝变成的解决方案。iOS4.0+才能使用,是替代NSThread、NSOperation的高效和强大技术。
-GCD是基于C语言的
dispatch queue 分为下面三种:
private dispatch queues ,同时只执行一个任务,通常用于同步访问特定的资源或数据。
global dispatch queue,可以并发地执行多个任务,但是执行完成的顺序是随机的。
Main dispatch queue 它是在应用程序主线程上执行任务的。
//////////////////////
//////////////////////
NSThread
-优点:NSThread 比其他两个轻量级,使用简单
- 缺点: 需要自己管理线程的生命周期、线程同步、加锁、睡眠、以及唤醒等。线程同步对数据的加锁会有一定的系统开销。
//////////////////////
//////////////////////
NSOperation:
-不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上
-NSOperation是面向对象的
1.The main queue:与主线程功能相同。实际上,提交至main queue 的任务会在主线程中执行。main queue 可以调用dispatch_get_main_queueu()来获得。因为main queue是与主线程相关的,所以这是一个串行队列。
2.Global queues : 全局队列是并发队列,并由整个进程共享。进程中存在三个全局队列:高、中(默认)、低三个优先级来访问队列。
3.用户队列: 用户队列(GCD并不这样称呼这种队列,但是没有一个特定的名字来形容这种队列,所以我们称为 用户队列)是函数 dispatch_queue_create 穿件的队列。这些队列是串行。正是因为如此,它们可以用来完成同步机制。有点像传统线程中的mutex。
GCD:
-Grand Central Dispatch 是由苹果开发的一个多喝变成的解决方案。iOS4.0+才能使用,是替代NSThread、NSOperation的高效和强大技术。
-GCD是基于C语言的
dispatch queue 分为下面三种:
private dispatch queues ,同时只执行一个任务,通常用于同步访问特定的资源或数据。
global dispatch queue,可以并发地执行多个任务,但是执行完成的顺序是随机的。
Main dispatch queue 它是在应用程序主线程上执行任务的。
//////////////////////
//////////////////////
NSThread
-优点:NSThread 比其他两个轻量级,使用简单
- 缺点: 需要自己管理线程的生命周期、线程同步、加锁、睡眠、以及唤醒等。线程同步对数据的加锁会有一定的系统开销。
//////////////////////
//////////////////////
NSOperation:
-不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上
-NSOperation是面向对象的
相关文章推荐
- iOS 相机打开动画效果
- iOS完整学习路线图
- iOS-OC-@synthesize 和dynamic 区别
- iOS-OC-线程与进程
- IOS关闭键盘以及接受键盘打开关闭事件
- iOS9 定位服务启用
- 蓝懿ios 技术内容和心得交流分享 11.3 打飞机主要步骤
- Github上600多个iOS开源项目分类及介绍
- iOS CALayer简单学习
- #在蓝懿学习iOS的日子#第四个练习日
- iOS 调用支付宝 显示系统繁忙,请稍后再试(ALI10
- 如何自定义NavigationBar的高度
- iOS 开发懒加载
- iOS开发>学无止境 - 验证码倒计时
- 我的iOS学习历程 - OC第七天
- 我的iOS学习历程 - OC第七天
- iOS模糊效果使用第三方库FXBlurView
- 总结分享10大iOS开发者最喜爱的库
- 汇总iOS开发中需要用到的开源库
- IOS开发: 返回字符串高度, 重定义cell高度, cell重用方法