您的位置:首页 > 移动开发 > IOS开发

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是面向对象的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: