- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
//第一种线程的开启
[NSThread detachNewThreadSelector:@selector(newThread:) toTarget:self withObject:nil];
//第二种线程的开启
//创建线程对象
NSThread *newThread=[[NSThread alloc]initWithTarget:self selector:@selector(newThread2:) object:@"第二种"];
// [NSThread sleepForTimeInterval:5];//线程休眠5秒
//开式多线程
[newThread start];
//第三种开启新线程
[self performSelectorInBackground:@selector(selfBackground:) withObject:nil];
return YES;
}
-(void)newThread:(NSThread *)thread
{
NSLog(@"第一种:%s","add");
}
-(void)newThread2:(NSString *)str
{
NSLog(@"第二种线程:%@",str);//打印传递的参数
}
-(void)selfBackground:(id)sender
{
NSLog(@"第三种");
}
三种情况每次运行,打印的顺序不一样
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
NSThread *newThread=[[NSThread alloc]initWithTarget:self selector:@selector(newThread2:) object:@"第二种"];
//开式多线程
[newThread start];
for (int i=0; i<100; i++) {
NSLog(@"-主线程-%d",i);
}
return YES;
}
-(void)newThread2:(NSString *)str
{
NSLog(@"第二种线程:%@",str);//打印传递的参数
for (int i=0; i<100; i++) {
NSLog(@"--多线程--%d",i);
}
}