多线程1.串行// 将操作放在队列中 // 在C语言函数中,定义类型,绝大多数的结尾是_t或者ref // 使用串行队列,的异步任务非常非常非常有用!新建子线程是有开销的,不能无休止新建线程 // 即可以保证效率(新建一个子线程),用能够实现并发 // 应用案例: // 1> 从网络上上下载图片 /...
分类:
编程语言 时间:
2015-06-02 12:50:53
阅读次数:
115
GCD基本思想1.操作使用block定义2.队列负责调度任务执行所在的线程,以及具体的时间;3.队列的特点是先进先出(FIFO),新添加的队列的操作都会排在对尾;提示GCD函数都是以dispatch(分配,调度)开头的队列dispatch_queue_t 串行队列,队列中的任务只会循序执行; 并行队...
分类:
其他好文 时间:
2015-05-31 18:22:51
阅读次数:
108
GCD怎么用的?
?
1.串行队列,同步操作,不会新建线程,操作顺序执行;
?
串行队列,异步操作,会新建线程,操作顺序进行,使用场景:既不影响主线程,又需要顺序执行的操作;
?
2.并行队列,同步操作,不会新建县城,操作顺序执行;
?
并行队列,异步操作,会新建线程,操作无序进行,队列前如果有其他任务,会等待其他任务执行完毕再执行;
?
全局队列是系统的,直...
分类:
移动开发 时间:
2015-05-17 13:49:15
阅读次数:
399
GCD是Grand Central Dispatch 的缩写. 即多线程优化技术.
它可以提供线程安全的队列,串行队列和并行队列,同步和异步执行任务.在队列中, 有很多回调块的执行单位, 完成一个任务后就回调块继续执行.
GCD队列特点:
1. 不是为了通常的数据存储而设计的
2. 它没有取消功能, 没有随机访问功能
3. 使用合理的数据结构来解决问题
简单的创建队列
dispatc...
分类:
其他好文 时间:
2015-05-04 01:20:13
阅读次数:
201
首先理解两个概念串行队列,并发队列:代表线程以什么样的方式执行同步,异步:标示是否开启新的线程 队列里面放的是操作,如果是串行的队列,那么一次只能够出来一个操作,如果是同步的执行方式,那么只有一个线程来执行的这些操作,这一个线程执行完一个操作之后然后就执行队列里面的下一个操作,这是在同一个线程中执....
分类:
其他好文 时间:
2015-04-24 15:54:15
阅读次数:
110
GCD : 苹果为多核的并行运算提出的解决方法GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)队列 : 用来存放任务(串行队列、并行队列)任务 : 执行什么操作(同步、异步)并发 : 多个任务同时执行串行 : 一个任务执行完毕后,再执行下一个任务全局并发队列(多条)手动创建串行队列(1...
分类:
其他好文 时间:
2015-04-21 20:41:46
阅读次数:
112
Grand Central Dispatch简称(GCD)是由苹果公司开发的技术,是一个非常好的用于多核设备的解决方案。GCD核心在于两个概念: 队列:队列负责管理开发者提交的任务,GCD队列始终以FIFO(先进先出)的方式来处理任务-----但由于处理执行的时间不同,所以先处理的任务并不一定先结束。队列既可以是串行队列,也可以是并发队列,串行队列每次只处理一个任务,必须前一个任务执行完成后...
分类:
编程语言 时间:
2015-04-17 18:09:27
阅读次数:
151
同步,不具备开启线程的能力:dispatch_sync异步,具备开启线程的能力:dispatch_async并列队列:多个任务可以同时执行串行队列:一个任务执行完后,再执行下一个任务一个金典的列子:#define ZHGlobalQueue dispatch_get_global_queue(DIS...
分类:
移动开发 时间:
2015-04-16 12:08:10
阅读次数:
125
今天风超大的,把我人都快吹走了,但是我还是回来来。。。啦啦啦,长话短说,下面为大家准备了GCD的深入了解。大家可以复制到自己的Xcode里面运行下了。然后仔细看看这些介绍,多敲几遍。其实很简单的,一个并发 一个串行队列。。。就像我们走路一样,3个人走一排角并发 ,把3个人拍好队一个个走,就是串行队列。。哈哈,是不是很有意思呢?
#import "ViewController.h"
...
分类:
移动开发 时间:
2015-04-14 08:36:24
阅读次数:
262
dispatch队列的生成可以有这几种方式:
1. dispatch_queue_t queue = dispatch_queue_create("com.dispatch.serial", DISPATCH_QUEUE_SERIAL); //生成一个串行队列,队列中的block按照先进先出(FIFO)的顺序去执行,实际上为单线程执行。第一个参数是队列的名称,在调试程序时会非常有用,所有尽量不要...
分类:
编程语言 时间:
2015-03-31 12:50:41
阅读次数:
262