概述
重点:
NSThread
多线程基础、pthread、开启线程的3种方式
线程的状态、线程安全问题、线程间的通信
GCD
同步方法和异步方法、队列的使用、线程间的通信
延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式
NSOperation
NSOperation和NSOperationQueue的概念理解、NSInvocationOperation、NSBlockOperation
NSOperationQueue的常见方法、最大并发数、操作依赖、队列的取消\暂停\恢复
一、概念
1、进程:系统中正在运行的一个应用程序
2、线程:1个进程想要执行任务,必须得有线程。即线程是进程的基本执行单元
1)线程的串行:一个线程中任务的执行是串行的
2)多线程的原理:同一时间,CPU只能处理一条线程。多线程并发执行,其实就是CPU快速地在多条线程之间调度(如果CPU调度的时间足够快,就造成了多线程并发执行的假象)
二、多线程在iOS开发中的应用
1、什么是主线程:一个iOS程序运行之后,默认会开启一条线程,称为“主线程”,或者“UI线程”
2、主线程的主要作用:
显示、刷新UI界面
处理UI事件(点击、滚动、拖拽)
p s:主线程的使用注意事项:别将比较耗时的操作放到主线程中
一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法。
3、iOS中多线程的实现方案
iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。下面根据抽象层次从低到高依次列出iOS所支持的多线程编程方法:
1).Thread :是三种方法里面相对轻量级的,但需要管理线程的生命周期、同步、加锁问题,这会导致一定的性能开销
2.)Cocoa Operations:是基于OC实现的,NSOperation以面向对象的方式封装了需要执行的操作,不必关心线程管理、同步等问题。NSOperation是一个抽象基类,iOS提供了两种默认实现:NSInvocationOperation和NSBlockOperation,当然也可以自定义NSOperation
3).Grand Central Dispatch(简称GCD,iOS4才开始支持):提供了一些新特性、运行库来支持多核并行编程,它的关注点更高:如何在多个cpu上提升效率
4、线程状态
作者:u011018979 发表于2017/7/4 9:44:11 原文链接
阅读:14 评论:0 查看评论