NSThread的基本用法

- (IBAction)btnClick {
    // 1.获得当前的线程
    NSThread *current = [NSThread currentThread];
    NSLog(@"btnClick---%@", current);
    
//    NSThread *main = [NSThread mainThread];
//    NSLog(@"btnClick---%@", main);
    
    // 2.执行一些耗时操作 : 创建一条子线程
    [self threadCreate];
}

- (void)run:(NSString *)param
{
    NSThread *current = [NSThread currentThread];
    
    for (int i = 0; i<10000; i++) {
        NSLog(@"%@----run---%@", current, param);
    }
}

/**
 * NSThread的创建方式
 * 隐式创建线程, 并且直接(自动)启动
 */
- (void)threadCreate3
{
    // 在后台线程中执行 === 在子线程中执行
    [self performSelectorInBackground:@selector(run:) withObject:@"abc参数"];
}

/**
 * NSThread的创建方式
 * 创建完线程直接(自动)启动
 */
- (void)threadCreate2
{
    [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"我是参数"];
}

/**
 * NSThread的创建方式
 * 1> 先创建初始化线程
 * 2> start开启线程
 */
- (void)threadCreate
{
    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"哈哈"];
    thread.name = @"线程A";
    // 开启线程
    [thread start];
    
    NSThread *thread2 = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"哈哈"];
    thread2.name = @"线程B";
    // 开启线程
    [thread2 start];
}

 

posted @ 2015-06-14 10:24  cn.ios  阅读(159)  评论(0)    收藏  举报