NSThread 的用法

一、线程的注意点:

1.不要同时开太多的线程(最多不要超过5条,其中包括主线程)

2.线程概念

2.1.主线程:UI 线程,显示、刷新 UI 界面,处理 UI 控件的事件

2.2.子线程:后台线程,异步线程

3.不要把耗时的操作放在主线程,要放在子线程中执行

二、NSThread 用法

1.创建和启动线程的3种方式

1.1.先创建,后启动

// 创建

NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(download:) object:nil];

// 启动

[thread start];

1.2.创建完自动启动

[NSThread detachNewThreadSelector:@selector(download:) toTarget:self withObject:nil];

1.3.隐式创建(自动启动)

[self performSelectorInBackground:@selector(download:) withObject:nil];

 

2.常见方法

2.1.获得当前线程

+ (NSThread *)currentThread;

2.2.获得主线程

+ (NSThread *)mainThread;

2.3.睡眠(暂停)线程

+ (void)sleepUntilDate:(NSDate *)date;

+ (void)sleepForTimeInterval:(NSTimeInterval)ti;

2.4.设置线程的名字

- (void)setName:(NSString *)name;

- (NSString *)name;

 

三、线程同步

1.实质:为了防止多个线程抢夺同一个资源造成的数据安全问题

2.实现:给代码加一个互斥锁(同步锁)

@synchronized(self){

// 被锁住的代码

}

 

posted @ 2016-01-18 10:19  晒太阳的仙人掌  阅读(179)  评论(0编辑  收藏  举报