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种
新建 就绪 运行 阻塞 死亡
浙公网安备 33010602011771号