iOS多线程编程之三——GCD的应用
iOS多线程编程之三——GCD的应用 一、引言 在软件开发中使用多线程可以大大的提升用户体验度,增加工作效率。iOS系统中提供了多种分线程编程的方法,在前两篇博客都有提及: NSThread类进行多线程编程: http://my.oschina.net/u/2340880/blog/416524 。 NSOperation进行多线程操作编程: http://my.oschina.net/u/2340880/blog/416782 。 上两个进行多线程编程的机制都是封装于Object-C的类与方法。这篇博客将讨论的 Grand Central Dispatch(GCD)机制,则是基于C语言的,相比上面两种机制,GCD更加高效,并且线程有系统管理,会自动运用多核运算。因为这些优势,GCD是apple推荐我们使用的多线程解决方案。 二、GCD的调度机制 GCD机制中一个很重要的概念是调度队列,我们对线程的操作实际上是由调度队列完成的。我们只需要将要执行的任务添加到合适的调度队列中即可。 1、调度队列的类型 调度队列有三种类型: (1)主队列 其中的任务在主线程中执行,因为其会阻塞主线程,所以这是一个串行的队列。可以通过 dispatch_get_main_queue ()方法得到。 (2)全局并行队列 队列中任务的执行方式是严格按照先进先出的模式进行了。如果是串行的队列