GCD之线程小记

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"1");

    dispatch_sync(dispatch_get_main_queue(), ^{
        NSLog(@"2");
    });

    NSLog(@"3");
}
打印结果为:1 
原因:主线程死锁

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"1");
    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"4");
    });
    NSLog(@"3");
}
打印结果:134



- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"1");  
    dispatch_sync(dispatch_get_global_queue(nil, nil), ^{
        NSLog(@"5");
    });
    NSLog(@"3");
}
结果:153 (忽略两个nil的警告)

你可能感兴趣的:(ios,线程,Object-C)