09 2013 档案

iOS多线程的初步研究(十)-- dispatch同步
摘要:GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatch group)1. 创建dispatch组dispatch_group_t group = dispatch_group_create();2. 启动dispatch队列中的block关联到group中dispatch_group_async(group, queue, ^{ // 。。。});3. 等待group关联的block执行完毕,也可以设置超时参数dispatch_group_wait(group, DISPATCH_TIME_FOREVER);4. 为group设. 阅读全文

posted @ 2013-09-11 13:33 技术内幕 阅读(10792) 评论(0) 推荐(1)

iOS多线程的初步研究(九)-- dispatch源
摘要:dispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种特别的生产消费模式。dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地block,生产和消费同步是dispatch源会自动管理的。dispatch源的使用基本为以下步骤:1. dispatch_source_t source = dispatch_source_create(dispatch_source_type, handler, mask, dispatch_queue); 阅读全文

posted @ 2013-09-10 21:11 技术内幕 阅读(9641) 评论(2) 推荐(1)

iOS多线程的初步研究(八)-- dispatch队列
摘要:GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。dispatch队列的生成可以有这几种方式:1. dispatch_queue_t queue = dispatch_queue_create("com.dispatch.serial", DISPATCH_QUEUE_SERIAL); //生成一个串行队列,队列中的block按照先进先出(FIFO)的顺序去执行 阅读全文

posted @ 2013-09-08 20:26 技术内幕 阅读(16193) 评论(1) 推荐(4)

iOS多线程的初步研究(七)-- dispatch对象
摘要:谈起iOS的dispatch(正式称谓是Grand Central Dispatch或GCD),不得不说这又是iOS(包括MacOSX)平台的创新,优缺点这里不讨论,只有当你使用时才能真正体会到。我们说dispatch函数的主要目的是实现多任务并发代码,那么要理解dispatch函数,先来了解dispatch对象的定义。dispatch对象类型的部分定义,主要使用C语言的宏定义:文件:#define OS_OBJECT_CLASS(name) OS_##name#define OS_OBJECT_DECL(name, ...) \@protocol OS_OBJECT_CLASS(name) 阅读全文

posted @ 2013-09-06 16:13 技术内幕 阅读(3473) 评论(0) 推荐(0)

导航