多线程

- (void)viewDidLoad {

    [super viewDidLoad];

    _mutablearray=[NSMutableArray array];

    _mutablearraytwo=[NSMutableArray array];

    NSLog(@"/%@",_mutablearraytwo);

    for (int r=0; r<ROW; r++)

    {

        for (int c=0; c<COLUMN; c++)

        {

            UIImageView*imageview=[[UIImageView alloc]initWithFrame:CGRectMake(18.7+c*118, 20+r*118, 100, 100)];

            imageview.backgroundColor = [UIColor redColor];

            [_mutablearray addObject:imageview];

            [self.view addSubview:imageview];

        }

        

    }

    [self begin];

}

 

#pragma mark 开启多线程

-(void)begin

{

   

//创建一个操作队列

    NSOperationQueue *operationQueue=[[NSOperationQueue alloc]init];

    operationQueue.maxConcurrentOperationCount=5;//设置最大并发线程数

    //2.向队列添加操作

//    for(int i=0; i<IMAGE_CDUT;i++)

//    {

        //方法一:创建操作快 添加到队列

        NSBlockOperation*blockOpearation=[NSBlockOperation blockOperationWithBlock:^{

            [self loadImage:i];

        };

//    

    [operationQueue addOperation:blockOpearation];

//        //方法二:祷文invocation

//        NSInvocationOperation*invocationOp=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(loadImage:) object:[NSNumber numberWithInt:i]];

//        [operationQueue addOperation:invocationOp];

//        

//    }

    //方法三:控制线程的执行顺序

    //写一个串行队列

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

    {

        NSBlockOperation*op1=[NSBlockOperation blockOperationWithBlock:^{

            [self loadImage:[NSNumber numberWithInt:i]];

        }];

        

//            NSBlockOperation*op2=[NSBlockOperation blockOperationWithBlock:^{

//                [self loadImage:[NSNumber numberWithInt:i+1]];

//            }];

       

        [_mutablearraytwo  addObject:op1];

 

    }

    NSLog(@"*********%@",_mutablearraytwo );

//    //设置依赖

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

    {

        [_mutablearraytwo [i+1] addDependency:_mutablearraytwo [i]];

    }

    

    //把操作添加到队列

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

    {

       // NSLog(@"%@",_mutablearraytwo[i]);

        [operationQueue addOperation:_mutablearraytwo [i]];

    }

//    //

    

}

//子线程

-(void)loadImage:(NSNumber*)number

{

    //回归主线程

    NSData*data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2797161595,3723997864&fm=116&gp=0.jpg"]];

    [[NSOperationQueue mainQueue]addOperationWithBlock:^{

        UIImage*image=[UIImage imageWithData:data];

        UIImageView*imageview=_mutablearray[[number intValue]];

        imageview.image=image;

       

    }];

 

}

转载于:https://my.oschina.net/zhangxiaoweishuaige/blog/743314

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值