您的位置:首页 > 其它

多线程 ——NSThread

2015-11-20 22:06 274 查看
先看一下线程的状态



学习多线程的目的:就将耗时操作放到子线程中去执行。

[NSThread currentThread] 获得当前方法执行的线程对象

通过number来判断当前线程是主线程还是子线程

提示:不要纠结这个number的值是多少

只要number == 1,则代表是主线程

number != 1,则是子线程,这个值是由CPU决定,

创建线程方法一:

- (void)threadDemo1 {
// 创建线程 -- 仅仅是在内存中创建了一个线程对象,并没有开始执行指定方法
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(longOperation:) object:@"alloc"];

// 开始执行
[thread start];
}

- (void)longOperation:(id)param{
NSLog(@"%@---%@",param,[NSThread currentThread]);
}


创建线程方法二:

- (void)threadDemo2 {
// 创建线程
// 默认自动开启
[NSThread detachNewThreadSelector:@selector(longOperation:) toTarget:self withObject:@"detach"];
}


创建线程方法三:

- (void)threadDemo3{
// 隐式在后台开启线程执行指定的方法。
// 任何 NSObject对象都可以调用该方法,在后台线程中执行对应的方法
[self performSelectorInBackground:@selector(longOperation:) withObject:@"performSelector"];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程