//// //// 条件锁 //// MultiThread //// //// Created by Kenshin Cui on 14-3-22. //// Copyright (c) 2014年 Kenshin Cui. All rights reserved. //// // //#import "KCMainViewController.h" //#import "KCImageData.h" //#define ROW_COUNT 5 //#define COLUMN_COUNT 3 //#define ROW_HEIGHT 100 //#define ROW_WIDTH ROW_HEIGHT //#define CELL_SPACING 10 //#define IMAGE_COUNT 9 // //@interface KCMainViewController (){ // NSMutableArray *_imageViews; // NSCondition *_condition; //} // //@end // //@implementation KCMainViewController // //- (void)viewDidLoad { // [super viewDidLoad]; // // [self layoutUI]; //} // //#pragma mark 界面布局 //-(void)layoutUI{ // //创建多个图片空间用于显示图片 // _imageViews=[NSMutableArray array]; // for (int r=0; r0) { //// name=[_imageNames lastObject]; //// [NSThread sleepForTimeInterval:0.001f]; //// [_imageNames removeObject:name]; //// } //// [_condition unlock]; // // [_condition wait]; // if (_imageNames.count>0) { // name=[_imageNames lastObject]; // [NSThread sleepForTimeInterval:0.001f]; // [_imageNames removeObject:name]; // } // [_condition signal]; // if(name){ // NSURL *url=[NSURL URLWithString:name]; // data=[NSData dataWithContentsOfURL:url]; // } // // return data; //} // //#pragma mark 加载图片 //-(void)loadImage:(NSNumber *)index{ // int i=[index integerValue]; // //请求数据 // NSData *data= [self requestData:i]; // //更新UI界面,此处调用了GCD主线程队列的方法 // dispatch_queue_t mainQueue= dispatch_get_main_queue(); // dispatch_sync(mainQueue, ^{ // [self updateImageWithData:data andIndex:i]; // }); //} // //#pragma mark 多线程下载图片 //-(void)loadImageWithMultiThread{ // int count=ROW_COUNT*COLUMN_COUNT; // // dispatch_queue_t globalQueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); // //创建多个线程用于填充图片 // for (int i=0; i