概览
大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于用户而言可以继续进行其他操作;对于多核处理器,如果用户在UI线程中完成某个操作之后,其他后续操作在别的线程中继续执行,用户同样可以继续进行其他UI操作,与此同时前一个操作的后续任务可以分散到多个空闲CPU中继续执行(当然具体调度顺序要根据程序设计而定),及解决了线程阻塞又提高了运行效率。苹果从iPad2 开始使用双核A5处理器(iPhone中从iPhone 4S开始使用),A7中还加入了协处理器,如何充分发挥这些处理器的性能确实值得思考。今天将重点分析iOS多线程开发:
简介
iOS多线程
解决线程阻塞问题
多线程并发
线程状态
扩展-NSObject分类扩展
NSInvocationOperation
NSBlockOperation
线程执行顺序
串行队列
并发队列
其他任务执行方法
NSLock同步锁
@synchronized代码块
扩展--使用GCD解决资源抢占问题
扩展--控制线程通信
多线程这一块,如果长期不使用,慢慢就会忘掉,但是面试总会问,所以记录一下
以上所有的解释出自 https://www.cnblogs.com/kenshincui/p/3983982.html
网友评论