多线程 线程的状态
// 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种