GCD
andy_jiangbin
这个作者很懒,什么都没留下…
展开
-
ASIHTTPRequest-客户端证书支持
有时服务器要求提供客户端证书,从1.8版本开始,你可以随request发送证书。// Will send the certificate attached to the identity (identity is a SecIdentityRef)[request setClientCertificateIdentity:identity]; // Add an additional c转载 2013-09-29 13:37:51 · 883 阅读 · 0 评论 -
NSTimer总结
最近项目测试的时候会碰到集中情况,一种是压力测试的时候,批量发送数据会导致界面很卡顿,另外一种就是动画正在进行的时候,移动列表,会导致动画停止,如果不移动列表,动画马上接着运行。这是怎么回事呢,一开始个人认为移动列表,也就是触摸屏幕的时候把主线程阻塞了,看完代码不会引起这种情况,另一种就是移动列表时候,定时器被中断。通过网上查阅资料,是由于定时器创建时候用默认的RUnloop模式,而没有用trac转载 2015-04-20 10:46:29 · 381 阅读 · 0 评论 -
GCD笔记
一、什么是GCD? Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。二、什么时候使用多线程 我转载 2014-12-26 11:03:39 · 346 阅读 · 0 评论 -
iOS并发编程指南
原文地址:iOS并发编程指南作者:流云轻舞iOS Concurrency Programming GuideiOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性不强,而且编写正确的线程代码也不容易。Mac OS 和 iOS 采取 asynchronous design approach 来解决并发的问题。引入的异步技术有两个:Grand Cen转载 2013-12-05 09:37:22 · 559 阅读 · 0 评论 -
iOS系统GCD学习(3):dispatch_group
设想下面的循环:[cpp] view plaincopyfor(id obj in array) [self doSomethingIntensiveWith:obj]; 假定 -doSomethingIntensiveWith: 是线程安全的且可以同时执行多个.一个array通常包含多个元素,这样转载 2013-12-04 13:29:14 · 542 阅读 · 0 评论 -
使用GCD的时候容易犯的小错误总结
1、前提是没开启ARC,一些aotorelease对象在超出它本身所在块的范围之后被使用,会引起程序crash:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ __block NSURLResponse *response = nil;转载 2013-10-28 14:58:53 · 461 阅读 · 0 评论 -
利用dispatch_once创建单例
无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication.什么是单例呢?Wikipedia是如此定义的:在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。或者我的理解是:单例是一种类,该类只能实例化一个对象。 尽管这是单例的实际定义,转载 2013-10-28 12:44:29 · 379 阅读 · 0 评论 -
IOS多线程
ios有三种主要方法:1、NSThread。2、NSOperation。3、GCD。 1、 NSThread:调用方法如下:如果需要函数参数的话,可以通过Object传递。1.1:[NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil转载 2013-10-29 11:28:37 · 557 阅读 · 0 评论 -
GCD一些总结
一、函数的任务1、创建和管理队列dispatch_get_global_queuedispatch_get_main_queuedispatch_queue_createdispatch_get_current_queuedispatch_queue_get_labeldispatch_set_target_queuedispatch_main2转载 2013-10-28 14:58:10 · 565 阅读 · 0 评论 -
第一章 Blocks入门
以下部分使用实际的例子帮助你开始使用 Blocks。1.1 声明和使用一个Block使用^操作符来来声明一个 block 变量和指示 block 文本的开始。Block 本身的主体被{}包含着,如下面的例子那样(通常使用 C 的 ;符合指示 block 的结束):该示例的解析如下图:int multiplier = 7; i转载 2013-10-17 22:09:01 · 770 阅读 · 0 评论 -
Grand Central Dispatch (GCD) Reference (原创)Grand Central
概论 6 功能的任务 6 创建和管理队列 6 队列中的任务调度 7 使用调度组 8 管理调度对象 9 实用信号灯 10 使用障碍 10 管理调度源 11转载 2013-10-17 22:10:27 · 867 阅读 · 0 评论 -
GCD实战一:使用串行队列实现简单的预加载
其主要思路是使用gcd创建串行队列,然后在此队列中先后执行两个任务:1.预加载一个viewController 2.将这个viewController推入代码如下:@implementation DWAppDelegate{ dispatch_queue_t _serialQueue; UINavigationController *_navController;}转载 2013-09-26 22:29:36 · 419 阅读 · 0 评论 -
GCD介绍(一): 基本概念和Dispatch Queue
什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。除了代码的平行执行能力,GC转载 2013-09-26 22:27:08 · 383 阅读 · 0 评论 -
GCD介绍(三): Dispatch Sources
何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型?下面是GCD 10.6.0版本支持的事件:Mach port send right state changes.Mach p转载 2013-09-26 22:28:53 · 423 阅读 · 0 评论 -
GCD实战2:资源竞争
概述我将分四步来带大家研究研究程序的并发计算。第一步是基本的串行程序,然后使用GCD把它并行计算化。如果你想顺着步骤来尝试这些程序的话,可以下载源码。注意,别运行imagegcd2.m,这是个反面教材。。 imagegcd.zip (8.4 KB, 341 次) 原始程序我们的程序只是简单地遍历~/Pictures然后生成缩略图。这个程序是个命令行程序转载 2013-09-26 22:30:15 · 492 阅读 · 0 评论 -
GCD介绍(二): 多核心的性能
概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么干)转载 2013-09-26 22:28:08 · 420 阅读 · 0 评论 -
GCD(Grand Central Dispatch)教程
Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。入门教程:GCD介绍(一): 基本概念和D转载 2013-09-26 22:21:36 · 514 阅读 · 0 评论 -
GCD是否创建线程总结
同步函数不具备开启线程的能力,无论是什么队列都不会开启线程;异步函数具备开启线程的能力,开启几条线程由队列决定(串行队列只会开启一条新的线程,并发队列会开启多条线程)原创 2016-09-05 12:28:40 · 717 阅读 · 0 评论