IOS 多线程管理机制
一、多线程管理机制
二、NSThread
三、NSOperation
四、GCD : 全称 Grand Central Dispatch ,一套底层 API,提供并发程序编写. 基本概念就是 Dispatch queue (调度队列),并且提供了三种队列:
- The main queue : 与mian线程功能一样,main queue 队列的任务在主线程中执行,main queue 通过 dispatch_get_main_queue 获取,由于与主线相关,所以是串行队列。
- 全局队列 global queue : 并行队列
- 用户队列
五、多线程同步
- @synchronized: 同步锁(互斥锁/令牌锁),做同步操作。选择一个对象作为共享对象(即同步对象,一般使用self),然后,将“加锁代码”放入代码块中,当@synchronized的代码块执行时,首先检查,共享对象是否被另一个线程占用,如果,被占用,此线程则开始等待,直到其它线程释放占用的对象。@synchronized一般都用于单例或者静态对象。@synchronized要比NSLock使用容易。
1 - (void)testDemo 2 { 3 NSString *name; 4 NSString *firstName; 5 @synchronized(self) 6 { 7 name = "test"; 8 } 9 firstName = name; 10 }
六、总结