GCD

//并行队列

    dispatch_queue_t mainQueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    

    //2、将相应的任务加到队列中

    dispatch_async(mainQueue, ^{

        for (int i= 0 ; i < 100; i++)

        {

            NSLog(@"线程1:i = %d",i);

        }

    });

    dispatch_sync(mainQueue, ^{

        for (int i= 0 ; i < 100; i++)

        {

            NSLog(@"线程2:i = %d",i);

        }

    });


//任务分解成两个子任务

    //1、下载图片同步方式

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

   __block NSData *data = nil;

    dispatch_sync(queue, ^{

        NSURL *url = [[NSURL alloc]initWithString:@"http://localhost/userManager/0.jpg"];

        

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

    

        NSError *error = nil;

        NSURLResponse *response = nil;

        data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

        if (error == nil && data !=nil)

        {

            NSLog(@"下载成功了!");

            //2、显示图片异步方式

            dispatch_queue_t mainQueue = dispatch_get_main_queue();

            dispatch_async(mainQueue, ^{

                UIImage *images = [[UIImage alloc]initWithData:data];

                

                [self.image setImage:images];

            });

            

        }

        else

        {

        NSLog(@"下载失败!");

        }

    });


    return YES;

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