IOS:OC--多线程NSThread

2017-06-13  本文已影响0人  任任任任师艳

ViewController.m

import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

// //打印当前的线程
// NSLog(@"current=%@",[NSThread currentThread]);
// //打印主线程
// NSLog(@"main=%@",[NSThread mainThread]);
// //判断当前线程是否为主线程
// NSLog(@"isMainThread=%@",[NSThread isMainThread]);

pragma mark NSThread 手动开启线程

//开启线程对象

// NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(sayHi) object:nil];
//线程休眠 放在开启之前
// [NSThread sleepForTimeInterval:5];

//开启线程

// [thread start];
//结束当前线程
// [thread cancel];
//直接退出当前线程
// [NSThread exit];

pragma mark ----自动开启子线程

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

}

-(void)sayHi{
//自动释放池,
@autoreleasepool {
NSLog(@"IOS->current = %@ %@ %d",[NSThread currentThread],[NSThread mainThread],[NSThread isMainThread]);
}

//回到主线程,修改当前背景颜色
//回到主线程的方法  方法选择器  是否等待子线程完成后进入主线程
[self performSelectorOnMainThread:@selector(changeCloor) withObject:nil waitUntilDone:YES];

}

-(void)changeCloor{

self.view.backgroundColor = [UIColor cyanColor];
NSLog(@"current=%@   main=%@",[NSThread currentThread],[NSThread mainThread]);

}

上一篇下一篇

猜你喜欢

热点阅读