情景
在主线程删除数据源的一条数据(如首页订单),同时进行了下拉刷新,这时候会在子线程中修改数据源,导致数据不一致问题
解决方案
-
1、并发访问,数据拷贝:可以实时显示修改后的UI,但需要记录同步删除动作和数据拷贝,会增加内存开销。
2、串行访问:对内存消耗不大,但是修改数据的显示有延迟。
如:在子线程中进行网络请求、数据解析,会把请求回来的数据在串行队列做新增数据预排版,这时在主线程中删除某一行数据,需要调用同步的方式在串行队列中进行处理,那么就需要等待一小会儿,完成删除同步之后再去主线程中更新UI。
缺点:在子线程处理比较耗时的操作时,删除某一行动作会有一定延迟。