情景
在主線程刪除數(shù)據(jù)源的一條數(shù)據(jù)(如首頁(yè)訂單)坟岔,同時(shí)進(jìn)行了下拉刷新帝簇,這時(shí)候會(huì)在子線程中修改數(shù)據(jù)源,導(dǎo)致數(shù)據(jù)不一致問(wèn)題
解決方案
-
1吐辙、并發(fā)訪問(wèn),數(shù)據(jù)拷貝:可以實(shí)時(shí)顯示修改后的UI蘸劈,但需要記錄同步刪除動(dòng)作和數(shù)據(jù)拷貝昏苏,會(huì)增加內(nèi)存開銷。
并發(fā)訪問(wèn)威沫,數(shù)據(jù)拷貝 2贤惯、串行訪問(wèn):對(duì)內(nèi)存消耗不大,但是修改數(shù)據(jù)的顯示有延遲棒掠。
如:在子線程中進(jìn)行網(wǎng)絡(luò)請(qǐng)求孵构、數(shù)據(jù)解析,會(huì)把請(qǐng)求回來(lái)的數(shù)據(jù)在串行隊(duì)列做新增數(shù)據(jù)預(yù)排版烟很,這時(shí)在主線程中刪除某一行數(shù)據(jù)颈墅,需要調(diào)用同步的方式在串行隊(duì)列中進(jìn)行處理,那么就需要等待一小會(huì)兒雾袱,完成刪除同步之后再去主線程中更新UI恤筛。
缺點(diǎn):在子線程處理比較耗時(shí)的操作時(shí),刪除某一行動(dòng)作會(huì)有一定延遲芹橡。
串行訪問(wèn)