所以,我要写这个系列,尽量把官网文档中GCD的强大功能完整的表达出来。方便自己,也方便别人,如果发现有问题,欢迎提出
所以,决定开一个专栏来写这个教程。计划8篇文章,分别介绍各种功能,每种功能会附上简单完整的示例代码。最后
的一篇文章会进行总结,总结出GCD的经典使用场景。源代码只提供Swift版本。因为要上班,计划一个月内完成。每周两篇。
原创Blog,转载请注明出处
这个专栏地址
http://blog.csdn.net/column/details/swift-gcd.html
GCD
全称:Grand Central Dispatch
简介: GCD是对多线程、多核开发较完整的封装。在使用GCD的时候,系统会自动根据cpu使用情况进行调度,所以GCD是
一个简单易用,但是效果很好地多线程多核开发工具 。
要注意的地方:
1、慎用fork()函数(不是十分清楚流程不要用)
2、GCD是C语言级别的API,所以不会抓到异常,在一个提交到GCD的任务完成之前,应当处理完异常。
教程一
教程一涵盖了
1、GCD全局队列的四个优先级
2、几种本文使用到的GCD类型
3、dispatch_async/dispatch_async_f
4、dispatch_sync/dispatch_sync_f
一、概念与类型
对于GCD来说,所有的执行都放到队列中(queue),队列的特点是FIFO(先提交的先执行)。
GCD的队列分为几种,主队列(main),全局队列(global),用户创建队列(create)
对于全局队列,默认有四个,分为四个优先级
DISPATCH_QUEUE_PRIORITY_HIGH :优先级最高,在default,和low之前执行
DISPATCH_QUEUE_PRIORITY_DEFAULT 默认优先级,在low之前,在high之后
DISPATCH_QUEUE_PRIORITY_LOW 在high和default后执行
DISPATCH_QUEUE_PRIORITY_BACKGROUND:提交到这个队列的任务会在high优先级的任务和已经提交到background队列的执行完后执行。官方文档:(the queue is scheduled for execution after all high priority queues havebeen scheduled and the system runs items on a thread whose priority is set for background status.)
几种使用到的类型
copy