大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成 UI 操作后其他后续任务在其他线程中,当 CPU 空闲时会继续执行,而此时对于用户而言可以继续进行其他操作;对于多核处理器,如果用户在 UI 线程中完成某个操作之后,其他后续操作在别的线程中继续执行,用户同样可以继续进行其他 UI 操作,与此同时前一个操作的后续任务可以分散到多个空闲 CPU 中继续执行(当然具体调度顺序要根据程序设计而定),及解决了线程阻塞又提高了运行效率。苹果从 iPad2 开始使用双核 A5 处理器(iPhone 中从 iPhone 4S 开始使用),A7 中还加入了协处理器,如何充分发挥这些处理器的性能确实值得思考。今天将重点分析 iOS 多线程开发: