iOS多线程开发小demo3,线程的状态

//  Created by dyf on 14-6-23.
//  Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
//

#import "DYFViewController.h"

@interface DYFViewController ()
@property (nonatomic, strong) NSThread *thread;
@end

@implementation DYFViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    self.thread = [[NSThread alloc] initWithTarget:self selector:@selector(test) object:@"111"];
    self.thread.name = @"1111111111";
}

- (void)test {
    //
    NSLog(@"startedtest------%@", [[NSThread currentThread] name]);
    
//    // 阻塞状态2
//    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:5.0];
//    [NSThread sleepUntilDate:date];
    
//    // 阻塞状态1
//    [NSThread sleepForTimeInterval:5.0];
    
    for (int i = 0; i < 999; i++) {
        NSLog(@"test-----%d------%@", i, [[NSThread currentThread] name]);
        
        if (i == 50) {
            [NSThread exit];
        }
    }
    
    NSLog(@"endedtest------%@", [[NSThread currentThread] name]);

}

#warning 点击2次屏幕会出现 'NSInvalidArgumentException', reason: '*** -[NSThread start]: attempt to start the thread again',调用已经死的线程会报错
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // 开启线程
    [self.thread start];
}


@end

 小结:线程的状态大概有5种

新建 就绪  运行  阻塞  死亡

posted on 2014-06-24 07:14  风月灯  阅读(755)  评论(0编辑  收藏  举报