[精通iOS开发(第5版)]第15章 Grand Central Dispatch和后台处理笔记

原创 2015年07月08日 22:21:50

本章主要讲述如何在IOS设备上进行多线程编程的问题。

为此,苹果公司提供了GCD技术进行任务的分派。

另外还添加了block语言功能:

block可以在把代码块传递给另一个方法或函数的位置进行定义,即所谓的内联方式定义。(感觉这个特性只是增加了代码块的可读性)

block可以访问在创建它的范围内可用的变量。(这是一个比较实用的特性,避免了大量参数的传递)

block可以以读/写的方式访问以__block修饰的变量。(这样就可以进行不同线程间的数据交互)

GCD提供了dispatch_get_main_queue()方法获取主线程队列,在非主线程中可以往此队列中添加block以操作UI。(因为UI是非线程安全的,所以需要由主线程更新)

GCD提供了dispatch group来进行并行操作,添加到同一个group内的所有程序块可以并行进行执行;还可以通过dispatch_group_notify方法在当前group内的所有程序块都执行完毕后再执行接下来的操作。


2015-07-08 22:20:33


本章的第二部分主要讲述了应用程序的运行状态(未运行、活动、不活动、后台、挂起);

其中未运行、挂起状态一般无法进入,所以不会去处理;开发人员需要处理的就是应用程序在活动<-->不活动<-->后台三个状态之间进行切换时的四个委托方法或者通知;

尤其是从不活动状态进入到后台状态时,由于在5秒后应用程序将会被挂起,所以此时需要考虑大量的处理(比如释放文件图片资源、断开网络连接;保存当前界面信息)以减少应用程序对于内存的占用;

而且在进入到后台状态时,可以使用UIApplication的beginBackgroundTashWithExpirationHandler:方法请求获得更多的停留时间,以避免进入挂起状态。

版权声明:本文为博主原创文章,转载请注明出处。

精通iOS开发-第15章 Grand Central Dispatch和后台处理

第15章 Grand Central Dispatch 和 后台处理 15.3 线程基础知识     一个进程中的所有线程共享可执行程序代码和全局数据。每个线程也可以以拥有一些独有的...
  • u014222687
  • u014222687
  • 2016年06月27日 11:52
  • 230

精通iOS开发--第15章 Grand Central Dispatch和后台处理之Block与Self的循环引用

Block与Self的循环引用 01:众所周知若self中引用了Block块,而此Block块中又引用了Self则会造成循环引用,需要提醒的是即使在你的block代码中没有显式地出现"self"...
  • u014222687
  • u014222687
  • 2016年06月27日 11:55
  • 659

精通iOS开发--第15章 Grand Central Dispatch和后台处理之程序生命周期 NSNotificationCenter和线程

第15章 Grand Central Dispatch和后台处理之程序生命周期 15.6.1 应用生命周期 我们来探讨一下应用的生命周期有哪些状态。 一个空白demo,默...
  • u014222687
  • u014222687
  • 2016年06月27日 11:53
  • 371

iOS开发--多线程编程(四)GCD(Grand Central Dispatch)

GCD (Grand Central Dispatch)  GCD 底层也是用线程来实现,指示苹果帮咱们封装了具体操作的方法,这样可以让程序员不用关注实现的细节,只需要专注功能的实现  ...
  • CloverZhu
  • CloverZhu
  • 2016年04月27日 17:09
  • 691

iOS开发之再探多线程编程:Grand Central Dispatch详解

Swift3.0相关代码已在github上更新。之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread、操作队列以及GCD,介绍的不够深入。今天就以GCD为主题来全面的总结一下GCD...
  • zhaohongyan6
  • zhaohongyan6
  • 2017年04月21日 10:51
  • 200

深入理解Grand Central Dispatch (GCD)(一)

深入理解多线程
  • little_bo
  • little_bo
  • 2015年12月22日 11:57
  • 152

ios蓝牙开发学习笔记(二)central角色的实现

central角色的实现 central 角色需要完成的几件事情,如搜索,连接,与peripheral交互数据。 peripheral 角色同样需要完成几件事情,如,发布和广播服务,响应读,写,订...
  • swibyn
  • swibyn
  • 2016年08月02日 17:27
  • 1349

iOS多线程编程(三)----Grand Central Dispatch(GCD)介绍和使用

介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的...
  • Dev_Ho
  • Dev_Ho
  • 2014年12月25日 10:14
  • 1036

iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的...
  • Mr_banma
  • Mr_banma
  • 2015年07月08日 17:33
  • 811

iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的...
  • shanchelicun
  • shanchelicun
  • 2015年08月27日 10:52
  • 198
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[精通iOS开发(第5版)]第15章 Grand Central Dispatch和后台处理笔记
举报原因:
原因补充:

(最多只允许输入30个字)