摘要: 线程间的通信主要用于主线程与子线程的,也有用于子线程与子线程的 介绍下面几种通信方式 1.利用GCD方式(推荐) 利用这种方式可以轻松地控制线程间的跳转通信 2.利用系统方法 补充:也可以使用 [self performSelectorOnMainThread:@selector(setImg:) 阅读全文
posted @ 2016-03-26 09:38 blue-fly 阅读(186) 评论(0) 推荐(0) 编辑
摘要: GCD 是iOS多线程实现方案之一,非常常用 英文翻译过来就是伟大的中枢调度器,也有人戏称为是牛逼的中枢调度器 是苹果公司为多核的并行运算提出的解决方案 1.一次性函数 dispatch_once 顾名思义是只执行一次的函数,注意是整个程序中只执行一次(单例模式常用到) 2.栅栏函数 dispatc 阅读全文
posted @ 2016-03-26 09:27 blue-fly 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 在一个iOS应用的生命周期中,有时候我们只需要某个类的一个实例。例如当程序启动时,应用的状态由UIApplication类的一个实例维护,这个实例代表了整个应用程序对象,它只能是一个实例,作用是实现应用程序中一些共享资源的访问和状态的保持。 下面就是一个单例类的例子 因为基本上所有的类单例模式都差不 阅读全文
posted @ 2016-03-25 15:52 blue-fly 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 1. 在使用单例模式时一般使用allocWithZone 因为alloc最终还是会调用allocWithZone进行分配空间 2. synchronized 线程锁(互斥锁) 优点:能防止多线程抢夺资源造成的数据安全问题 缺点:需要消耗大量的CPU资源 3. GCD的队列类型 并发队列:自己创建的, 阅读全文
posted @ 2016-03-25 15:22 blue-fly 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 什么是主线程? 一个iOS程序运行后,默认会开启一条线程,称为“主线程”或“UI线程” 主线程的主要作用 1.显示/刷新UI界面 2.处理UI事件(比如点击事件,滚动事件,拖拽事件) 主线程的使用注意 1.别将比较耗时的操作放在主线程中 2.耗时操作会卡在主线程中,严重影响UI的流畅程度 如图,将耗 阅读全文
posted @ 2016-03-25 14:37 blue-fly 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 在学习多线程之前需要了解什么是进程? 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 可以通过“活动监视器”查看Mac中所开启的进程 下一个问题什么是线程? 一个进程想要执行任务,必须得有线程(每一个进程只收要有一个主线程) 一个进程中的所有 阅读全文
posted @ 2016-03-25 11:57 blue-fly 阅读(278) 评论(0) 推荐(0) 编辑