多线程 线程的状态

//  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种

 
 
原文地址:https://www.cnblogs.com/Cheetah-yang/p/4664142.html