ios 常用的多线程编程技术有以下三种:(还有 pthread 不怎么用,太麻烦)


1, NSThread

2,  NSOperation

3,  GCD (Grand Central Dispatch)


这三种编程方式从上到下,抽象层次从低到高,抽象层度越高使用越方便,鉴于方便程度,NSThread 使用也不太多了,另外两种使用多一些.

 

NSOperation 使用更加精细,可用与网络数据传输之类的。


GCD是苹果公司提供的一套并发解决方案,ios4以及以上可用,

GCD工作原理:把任务放到对应队列中,根据可用的处理资源,安排这些任务在任何可用的处理器上执行,一个任务可以是一个函数(function) 或者是一个block,

GCD的队列,dispatch queue,


main dispatch queue :全局性的serial queue,所有和UI操作相关的任务都应该放到这个queue里面,在主线程中执行。 宏 dispatch_get_main_queue()取到这个队列,


IOS 多线程 demo_ios


global dispatch queue :可以并发的执行多个任务,但是完成的顺序是随机的,一般后台执行的任务放到这个queue里, 函数 dispatch_get_global_queue(0,0)取到这个队列:

IOS 多线程 demo_ios_02



IOS 多线程 demo_ios_03


IOS 多线程 demo_ios_04

IOS 多线程 demo_ios_05



IOS 多线程 demo_ios_06

IOS 多线程 demo_多线程_07