欢迎来到天天文库
浏览记录
ID:8965842
大小:27.50 KB
页数:2页
时间:2018-04-13
《ios多线程gcd基本用法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、iOS多线程GCD基本用法 ios中多线程有三种,NSTread,NSOperation,GCD,本文就讲讲GCD的基本用法,更多iOS开发技术知识,请登陆疯狂软件教育官网。 平时比较多使用和看到的是: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{ //异步操作代码块 dispatch_async(dispatch_get_main_queue(),^{ //回到主线程操作代码块
2、 }); }); 比较多的用于更新ui操作 比如从数据库获取数据需要花较长的时间,又不希望卡主线程,就把获取数据库数据操作放在异步操作代码快中,等获取结束,回调主线程,更新ui,在主线程操作代码块中进行操作 下面我们来解析一下这代码块中的每个方法: dispatch_async(<#dispatch_queue_tqueue#>,<#^(void)block#>) 表示异步操作,与之对应的是 dispatch_sync(<#dispatch_queue_tqueue#>,<#^(voi
3、d)block#>),同步操作,block中的代码执行完了才能执行后面的操作 方法中第一个参数dispatch_queue_tqueue表示队列,无非是两种:串行和并行,另外可自建串行或并行队列 获取系统串行队列,也就是主线程串行队列: dispatch_get_main_queue() 获取系统并行队列: dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0) 其中第一个参数,是队列优先级,有四种: #defineDIS
4、PATCH_QUEUE_PRIORITY_HIGH2 #defineDISPATCH_QUEUE_PRIORITY_DEFAULT0 #defineDISPATCH_QUEUE_PRIORITY_LOW(-2) #defineDISPATCH_QUEUE_PRIORITY_BACKGROUNDINT16_MIN 会根据优先级高低,进行处理 自建队列: dispatch_queue_create("com.example.serial",NULL); 第一个参数,文档规范说: Astri
5、nglabeltoattachtothequeue.这个字符串需要唯一性,一般是以上形式呈现 第二个参数传NULL或者DISPATCH_QUEUE_SERIAL表示串行 传DISPATCH_QUEUE_CONCURRENT表示并行 当执行结束,必须要有dispatch_release(),将队列释放 疯狂软件教育拥有最专业的疯狂iOS学习线路图,不仅证明疯狂软件iOS无与伦比的课程深度,也证明了疯狂软件iOS深厚的技术底蕴;同时也指引了iOS学习者的自学方向。iOS培训采用全新的iMac苹果一
6、体机教学,疯狂软件教育重点培养学员理解软件开发过程,形成良好的编码习惯,能独立完成iPhone手机和iPad平板电脑上App开发,积累一定的项目经验,能满足企业对iOS相关的人才需求,短期内成就高薪iOS开发人才。
此文档下载收益归作者所有