一、NSThread
1.创建和启动线程的3种方式
1>先创建,后启动
//创建
NSThread *thread1 = [[NSThread alloc] initWithTarget:self selector:@selector(download) object:nil];
//启动
[thread1 start];
2>创建完成自动启动
[NSThread detachNewThreadSelector:@selector(download) toTarget:self withObject:nil];
3>隐式创建(自动启动)
[self performSelectorInBackground:@selector(download) withObject:nil];
2.常见方法
1>获得当前线程
+ (NSThread *)currentThread;
2>获得主线程
+ (NSThread *)mainThread
3>睡眠(暂停)线程
+ (void)sleepUntilDate:(NSDate *)date;
+ (void)sleepForTimeInterval:(NSTimeInterval)ti;
4>设置线程的名字
-(void)setName:(NSString *)name;
-(NSString *)name;
二、线程同步
1.实质:为了防止多个线程抢夺统一资源造成的数据安全问题
2.实现:给代码加一个互斥锁(同步锁)
@synchronized(self){
//被锁住的代码
}