多线程 线程的状态

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

 
 

你可能感兴趣的:(多线程)