码迷,mamicode.com
首页 > 移动开发 > 详细

OC高级编程iOS多线程个人理解一

时间:2015-12-11 23:52:37      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

大部分笔记源自于:Objective-C高级编程(iOS与OS多线程和内存管理)一书,时间有些久远,甚至GCD网上说已经不需要手动释放release了,但是书中强调是使用GCD需要开发者自己管理计数。

 

  首先什么是GCD?

  这是Apple公司为了方便开发者,使开发者更专注于多线程中的任务执行内容的API,官方说明中:开发者要做的只是定义想执行的任务并追加到适当的Dispatch Queue中。是C语言但被组建成面像对象风格。他是我们是用来异步执行任务的技术之一。还有Pthread,NSThread,NSOperation,NSOperationQueue。

 

  首先,我们App中就有一个主线程,一般情况下都是在这里进行的,特别是很大一部分UI是要在主线程上更新,而部分网络请求则是不在主线程更新,为了避免应用程序卡主或者阻塞了用户的交换。

  而在GCD中,DispatchQueue分为了两种,一种是称为串行队列(Serial Dispatch Queue),一种是并行队列(Concurrent Dispatch Queue),而我们需要执行的任务一般情况下是用Block语法中记叙,并加入到Dispatch Queue中执行。

  串行队里中的任务是按照队列任务执行的,按照先进先出的方法来执行队列中加载的block(即我们所需干的事情)。当一个block没完成时,该队列后面的block是不会执行的!必须一个一个来!

   但是并行队列并不需要等待,即前面的block没有执行完,后面的block也会执行,是多个block同时执行!不需要等待结束。

 

OC高级编程iOS多线程个人理解一

标签:

原文地址:http://www.cnblogs.com/hams/p/5040406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!