![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS多线程
城市之光--
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。沉下心来,潜心修炼,终有发光之日。
展开
-
iOS多线程的初步研究(八)-- dispatch队列
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。 dispatch队列的生成可以有这几种方式:1. dispatch_queue_t queue = dispat转载 2014-02-12 14:57:44 · 362 阅读 · 0 评论 -
ALAssetsLibrary详解
ALAssetsLibrary详解发表于18天前(2014-02-15 22:46) 阅读(3) | 评论(0) 0人收藏此文章, 我要收藏赞0iOS ALAssetsLibraryALAssetsLibrary类是代表系统中整个资源库,使用它可以访问资源库中的资源和保存照片,视频等功能。 _library = [[ALAsse转载 2014-03-05 13:23:44 · 646 阅读 · 0 评论 -
iOS多线程的初步研究(十)-- dispatch同步
GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatch group)1. 创建dispatch组dispatch_group_t group = dispatch_group_create(); 2. 启动dispatch队列中的block关联到group中dispatch_group_转载 2014-02-12 15:44:48 · 441 阅读 · 0 评论 -
iOS多线程的初步研究(九)-- dispatch源
dispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种特别的生产消费模式。dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地block,生产和消费同步是dispatch源会自动管理的。dispatch源的使用基本为以下步骤:转载 2014-02-12 15:43:27 · 568 阅读 · 0 评论 -
iOS多线程的初步研究(七)-- dispatch对象
谈起iOS的dispatch(正式称谓是Grand Central Dispatch或GCD),不得不说这又是iOS(包括MacOSX)平台的创新,优缺点这里不讨论,只有当你使用时才能真正体会到。我们说dispatch函数的主要目的是实现多任务并发代码,那么要理解dispatch函数,先来了解dispatch对象的定义。 dispatch对象类型的部分定义,主要使用C语言的宏定义:转载 2014-02-12 15:41:56 · 367 阅读 · 0 评论 -
iOS多线程的初步研究(六)-- NSOperation
iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成、运行等管理代码。当然实质上是这些接口隐含生成线程和管理线程的运行,从而更加简洁地实现多线程。下面先来研究NSOperation和NSOperationQueue类的使用。NSOperation实质是封装了需要并发运行的代码,一些主要接口和NSThread基本相同,可以看转载 2014-02-12 15:41:04 · 358 阅读 · 0 评论 -
iOS多线程的初步研究(五)-- 如何让NSURLConnection在子线程中运行
可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行。前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有NSPort、NSStream、NSURLConnection、NSNetServ转载 2014-02-12 15:40:09 · 422 阅读 · 0 评论 -
iOS多线程的初步研究(四)-- NSTimer
理解run loop后,才能彻底理解NSTimer的实现原理,也就是说NSTimer实际上依赖run loop实现的。先看看NSTimer的两个常用方法:+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userI转载 2014-02-12 15:38:58 · 355 阅读 · 0 评论 -
iOS多线程的初步研究(二)-- 锁
谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果。一个基本的解决办法就是使用锁(LOCK)。iOS提供多种同步锁的类和方法,这里介绍下基本用法。 1. NSLock:最基本的同步锁,使用lock来获得锁,unlock释放锁。如果其它线程已经使用lock,这时lock方法会阻塞当前线程,直到其它线程调用unlock释放锁为止。NSLock锁一般用于简单的转载 2014-02-12 15:36:23 · 429 阅读 · 0 评论 -
iOS多线程的初步研究(一)-- NSThread
对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用。产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用。一、显示调用的类为NSThread。一般构造NSThread的线程对象可通过两种方式:1. 初始化线程主方法:[NSThread detachNewThreadSelector:@selector(run:) toTarget:tar原创 2014-02-12 15:35:16 · 398 阅读 · 0 评论 -
ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结
ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结发表于2个月前(2013-12-23 16:36) 阅读(40) | 评论(0) 0人收藏此文章, 我要收藏赞0这几天在搞iphone上面一个应用的开发,里面有需要摄像头/相册编程和图片上传的问题,在这里总结一下。 【部分知识】 iphone中图像通常存储在4个地方【相册、应用程序转载 2014-03-05 12:05:36 · 510 阅读 · 0 评论