NSThread的使用
- 实例方法
- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
NSThread *myThread = [[NSThread alloc] initWithTarget:self
selector:@selector(doSomething:)
object:nil];
[myThread start];
- 类方法
+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
[NSThread detachNewThreadSelector:@selector(doSomething:)
toTarget:self
withObject:nil];
NSObject的类方法 创建线程
// 创建线程
[Obj performSelectorInBackground:@selector(doSomething) withObject:nil];
// 线程间通讯
[self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:YES];
- (void)doSomeThing:(id)anObj {
@synchronized(anObj) { // synchronized 简化锁的使用
}
}
互斥锁的优缺点
- 优点:能有效防止因多线程抢夺资源造成的数据安全问题
- 缺点:需要消耗大量的CPU资源
- 互斥锁的使用前提:多条线程抢夺同一块资源