iOS 多线程(1)

- (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);
    }
}


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