美文网首页知识点总结
iOS UITableView如何在多线程环境下修改或同步数据源

iOS UITableView如何在多线程环境下修改或同步数据源

作者: 飞不越疯人院 | 来源:发表于2019-04-04 10:23 被阅读19次

问题场景: 删除tableview的数据源的一条数据时又触发了加载更多, 这样的话删除和加载更多会同时访问和修改数据源, 这时如何处理?

1 并发访问, 数据拷贝

假设删除数据在主线程, 加载更多在子线程A;

  1. 在删除数据之前做数据copy到加载更多的A线程中去. 并记录需要删除的数据;
  2. 主线程删除需要删除的数据并刷新;
  3. A线程中, 完成加载更多后,删除需要删除的数据然后转到主线程刷新UI;

缺点:需要copy, 内存开销大;

2 串行访问

假设删除数据在主线程, 加载更多在子线程A, 串行同步队列B;

  1. 将加载更多拿到的数据和需要删除的数据都放到队列B中;
  2. 串行队列中,同步执行; 加载更多和删除都完成后转到主线程刷新UI;

缺点:串行队列同步执行, 如果删除或者加载更多都很耗时的话整个过程会比较慢;

相关文章

  • iOS UITableView如何在多线程环境下修改或同步数据源

    问题场景: 删除tableview的数据源的一条数据时又触发了加载更多, 这样的话删除和加载更多会同时访问和修改数...

  • iOS面试题

    一.UI相关 1.UITableView相关 (1).重用机制 (2).数据源同步问题(多线程下修改数据源) 2....

  • 第二章、UI视图相关

    一、UITableView相关的数据源同步问题,即如何在tableview解决多线程情况下,数据的处理? 1、并行...

  • UI数据源同步

    数据源同步问题多线程对共享数据的访问,需要考虑数据源的同步问题,如何解决tableView在多线程环境下的修改或者...

  • 课程笔记:第3章 UI视图相关面试问题

    UITableView1、重用机制:先从重用池里取2、多线程下数据源同步(删除(主线程)后又加载数据(子线程)):...

  • 02-UI视图

    UI视图内容 UITableView重用机制数据源的多线程操作(数据源同步问题) 事件传递&视图响应 视图显示原理...

  • UITableView数据源同步

    UITableView多线程操作会导致数据源不同步问题,比如删除操作的同时loadMore操作返回 并发访问 数据...

  • iOS UI视图

    UITableView相关 重用机制和原理是什么样的?重用池 2.数据源同步的问题,多线程中去访问 并发访问数据拷...

  • iOS- UITableView数据源同步

    问题多线程下,修改tableview的数据源,数据同步问题的解决方案? 应用场景:在某些新闻类app中,当有用户做...

  • 起底多线程同步锁(iOS)

    起底多线程同步锁(iOS) 起底多线程同步锁(iOS)

网友评论

    本文标题:iOS UITableView如何在多线程环境下修改或同步数据源

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