关于锁

作者: 高思阳 | 来源:发表于2018-10-18 11:25 被阅读4次

static Object lock = [Object alloc] init];
int count = _dataArray.count;
for(int i = 0; i < count ; i ++ )
{
UploadModel *model = _dataArray;
UploadManager *manager = [[UploadManager alloc] init];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[manager uploadImagesWithSelecteArray: model success:^{

                // 上传成功回调   删除_dataArray中的数据
               //为什么要加个锁,因为每个任务结束的时间是不一样的,block也会开子线程,你获得了某个index后,cpu青睐了其他线程,然后执行了[_dataArray removeObject: model],你之前获得的index就是错误的index,所以你要加个锁,锁住这块代码,等这块代码执行完,才会放开这个锁.这样你上传是异步的,成功之后删除数组,更新Ui都是同步的,这样不会出现异步造成的错误
          @synchronized (lock) {   
                NSInteger index = [_dataArray indexOfObject: model];
                NSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0];
                [_dataArray removeObject: model];
                //  删除对应的Cell
                dispatch_async(dispatch_get_main_queue(), ^{
                  [_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationTop];
               });
             }
            } failure:^{
                NSLog(@"上传失败提示");
            }];
           
        });

}

相关文章

  • 关于锁

    static Object lock = [Object alloc] init];int count = _d...

  • 关于锁

    锁这东西作为一种工具,广泛用于各种门,从前是每把锁都配有钥匙,随着社会发展进步,各种各样的锁争相面市,如密码...

  • MS汇总

    数据库相关[MS-关于锁(乐观锁,悲观锁,行锁、表锁,共享锁,排他锁)Mysql索引优化Mysql查询优化Mysq...

  • 关于sql优化的一些总结

    1、非索引优化 2、关于索引 3、数据库读写锁(共享锁、排它锁)

  • 自旋锁&CLH锁&MCS锁学习记录

    本篇文章主要记录自旋锁、CLH锁、MCS锁的学习所得。关于自旋锁和CLH锁、MCS锁,网上已经有很多内容,而且很类...

  • SQL锁优化问题

    关于SQL锁。SQL优化少不了SQL锁优化 1.SQL常见锁有:共享锁 作用于查询操作(Select) 2.排他锁...

  • AQS锁的原理

    synchronized是JVM层面实现的锁,而AQS是JDK层面实现的锁。关于synchronized锁,可以看...

  • MySQL锁系列之锁的种类和概念

    在mysql当中,关于innodb的锁类型总共可以分为四种,包含了行锁和表锁,分别是 基本锁 - [ 共享锁(Sh...

  • Java锁

    1.锁2.volitaile3.final4.轻量级锁,偏向锁,重量级锁 关于Synchronized的维基百科定...

  • mysql中的"锁"事儿总结

    定义 关于mysql中的锁,是用于管理不同事务对共享资源的并发访问的问题,分为行锁和表锁。 表锁与行锁的区别: 锁...

网友评论

      本文标题:关于锁

      本文链接:https://www.haomeiwen.com/subject/qkpjzftx.html